From 9fdcd85a0fc70c09359a0edee17e5d7ecb6618ff Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Fri, 23 Feb 2024 13:43:35 +0500 Subject: [PATCH 001/175] Reconcile with latest main --- .gitignore | 1 + Cargo.lock | 600 ++++++++++++++++++++------------ Cargo.toml | 29 +- src/bin/loadtest.rs | 47 +-- src/consumer/builder.rs | 131 +++++++ src/consumer/health.rs | 78 +++++ src/consumer/mod.rs | 665 ++++++++++-------------------------- src/consumer/registries.rs | 77 +++++ src/consumer/runner.rs | 99 ++++++ src/error.rs | 6 - src/lib.rs | 21 +- src/producer/mod.rs | 151 ++++---- src/proto/batch/cmd.rs | 81 ++--- src/proto/batch/mod.rs | 68 ++-- src/proto/mod.rs | 390 +++++++++------------ src/proto/single/cmd.rs | 171 +++++----- src/proto/single/ent/cmd.rs | 18 +- src/proto/single/mod.rs | 25 +- src/proto/single/resp.rs | 166 ++++----- src/proto/utils.rs | 83 +++++ src/tls.rs | 157 ++++++--- tests/consumer.rs | 142 ++++---- tests/mock/inner.rs | 39 +++ tests/mock/mod.rs | 76 +++-- tests/producer.rs | 33 +- tests/real/community.rs | 231 +++++++------ tests/real/enterprise.rs | 556 ++++++++++++++++-------------- tests/real/main.rs | 1 + tests/real/utils.rs | 25 ++ tests/tls.rs | 65 ++-- 30 files changed, 2390 insertions(+), 1842 deletions(-) create mode 100644 src/consumer/builder.rs create mode 100644 src/consumer/health.rs create mode 100644 src/consumer/registries.rs create mode 100644 src/consumer/runner.rs create mode 100644 src/proto/utils.rs create mode 100644 tests/mock/inner.rs create mode 100644 tests/real/utils.rs diff --git a/.gitignore b/.gitignore index e8da9172..67b3c5c6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target/ **/*.rs.bk perf.* +.vscode \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 07d857dc..d1488183 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,21 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -52,7 +67,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -62,26 +77,62 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] -name = "autocfg" -version = "1.1.0" +name = "async-stream" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.50", +] [[package]] -name = "bitflags" -version = "1.3.2" +name = "async-trait" +version = "0.1.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.50", +] [[package]] -name = "bitflags" -version = "2.4.2" +name = "autocfg" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] [[package]] name = "block-buffer" @@ -93,25 +144,22 @@ dependencies = [ ] [[package]] -name = "bufstream" -version = "0.1.4" +name = "bumpalo" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8" +checksum = "c764d619ca78fccbf3069b37bd7af92577f044bb15236036662d79b6559f25b7" [[package]] -name = "bumpalo" -version = "3.15.0" +name = "bytes" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730" [[package]] name = "cfg-if" @@ -129,7 +177,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-targets", + "windows-targets 0.52.0", ] [[package]] @@ -165,16 +213,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.6" @@ -202,9 +240,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.6" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c376d08ea6aa96aafe61237c7200d1241cb177b7d3a542d791f2d118e9cbb955" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ "darling_core", "darling_macro", @@ -212,58 +250,58 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.6" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33043dcd19068b8192064c704b3f83eb464f91f1ff527b44a4e2b08d9cdb8855" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim 0.10.0", - "syn", + "syn 1.0.109", ] [[package]] name = "darling_macro" -version = "0.20.6" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a91391accf613803c2a9bf9abccdbaa07c54b4244a5b64883f9c3c137c86be" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "derive_builder" -version = "0.20.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0350b5cb0331628a5916d6c5c0b72e97393b8b6b03b47a9284f4e7f5a405ffd7" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" dependencies = [ "derive_builder_macro", ] [[package]] name = "derive_builder_core" -version = "0.20.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d48cda787f839151732d396ac69e3473923d54312c070ee21e9effcaa8ca0b1d" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" dependencies = [ "darling", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "derive_builder_macro" -version = "0.20.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" dependencies = [ "derive_builder_core", - "syn", + "syn 1.0.109", ] [[package]] @@ -276,66 +314,36 @@ dependencies = [ "crypto-common", ] -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys", -] - [[package]] name = "faktory" version = "0.12.5" dependencies = [ - "bufstream", + "async-trait", "chrono", "clap", "derive_builder", "fnv", "hostname", "libc", - "mockstream", - "native-tls", - "openssl", + "pin-project", "rand", "serde", "serde_derive", "serde_json", "sha2", "thiserror", + "tokio", + "tokio-rustls", + "tokio-test", "url", ] -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" - [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "form_urlencoded" version = "1.2.1" @@ -345,6 +353,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + [[package]] name = "generic-array" version = "0.14.7" @@ -366,6 +380,18 @@ dependencies = [ "wasi", ] +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "hermit-abi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" + [[package]] name = "hostname" version = "0.3.1" @@ -431,24 +457,12 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - [[package]] name = "libc" version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - [[package]] name = "log" version = "0.4.20" @@ -462,27 +476,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] -name = "mockstream" -version = "0.0.3" +name = "memchr" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bbe0c0c9d254b463b13734bc361d1423289547e052b1e77e5a77292496ba2e" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] [[package]] -name = "native-tls" -version = "0.2.11" +name = "mio" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ - "lazy_static", "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", + "wasi", + "windows-sys 0.48.0", ] [[package]] @@ -495,66 +511,61 @@ dependencies = [ ] [[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "openssl" -version = "0.10.63" +name = "num_cpus" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "bitflags 2.4.2", - "cfg-if", - "foreign-types", + "hermit-abi", "libc", - "once_cell", - "openssl-macros", - "openssl-sys", ] [[package]] -name = "openssl-macros" -version = "0.1.1" +name = "object" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ - "proc-macro2", - "quote", - "syn", + "memchr", ] [[package]] -name = "openssl-probe" -version = "0.1.5" +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] -name = "openssl-sys" -version = "0.9.99" +name = "pin-project" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", + "pin-project-internal", ] [[package]] -name = "percent-encoding" -version = "2.3.1" +name = "pin-project-internal" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.50", +] [[package]] -name = "pkg-config" -version = "0.3.30" +name = "pin-project-lite" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "ppv-lite86" @@ -611,81 +622,88 @@ dependencies = [ ] [[package]] -name = "rustix" -version = "0.38.31" +name = "ring" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ - "bitflags 2.4.2", - "errno", + "cc", + "cfg-if", + "getrandom", "libc", - "linux-raw-sys", - "windows-sys", + "spin", + "untrusted", + "windows-sys 0.52.0", ] [[package]] -name = "ryu" -version = "1.0.16" +name = "rustc-demangle" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] -name = "schannel" -version = "0.1.23" +name = "rustls" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" dependencies = [ - "windows-sys", + "log", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] -name = "security-framework" -version = "2.9.2" +name = "rustls-pki-types" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] +checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" [[package]] -name = "security-framework-sys" -version = "2.9.1" +name = "rustls-webpki" +version = "0.102.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" dependencies = [ - "core-foundation-sys", - "libc", + "ring", + "rustls-pki-types", + "untrusted", ] +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.50", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -703,6 +721,22 @@ dependencies = [ "digest", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "strsim" version = "0.10.0" @@ -715,11 +749,17 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + [[package]] name = "syn" -version = "2.0.49" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -727,15 +767,14 @@ dependencies = [ ] [[package]] -name = "tempfile" -version = "3.10.0" +name = "syn" +version = "2.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] @@ -755,7 +794,7 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.50", ] [[package]] @@ -773,6 +812,69 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tokio" +version = "1.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.50", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-test" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719" +dependencies = [ + "async-stream", + "bytes", + "futures-core", + "tokio", + "tokio-stream", +] + [[package]] name = "typenum" version = "1.17.0" @@ -793,13 +895,19 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.5.0" @@ -817,12 +925,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - [[package]] name = "version_check" version = "0.9.4" @@ -856,7 +958,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn", + "syn 2.0.50", "wasm-bindgen-shared", ] @@ -878,7 +980,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.50", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -917,7 +1019,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets", + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", ] [[package]] @@ -926,7 +1037,22 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -935,53 +1061,101 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/Cargo.toml b/Cargo.toml index 6e534db0..3929cee4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,33 +15,42 @@ exclude = [".github", "docker", ".gitignore", "Makefile"] [features] default = [] -tls = ["native-tls"] +tls = ["tokio-rustls", "pin-project"] binaries = ["clap"] ent = [] [dependencies] -bufstream = "0.1" -chrono = { version = "0.4", features = ["serde", "clock"], default-features = false } +async-trait = "0.1.77" clap = { version = "4.4.10", optional = true } -derive_builder = "0.20.0" +chrono = { version = "0.4", features = [ + "serde", + "clock", +], default-features = false } +derive_builder = "0.12.0" fnv = "1.0.5" hostname = "0.3" libc = "0.2" -native-tls = { version = "0.2", optional = true } +pin-project = { version = "1.1.4", optional = true } rand = "0.8" serde = "1.0" serde_derive = "1.0" serde_json = "1.0" sha2 = "0.10.0" thiserror = "1.0.30" +tokio = { version = "1.35.1", features = [ + "io-util", + "net", + "rt", + "time", + "macros", + "rt-multi-thread", +] } +tokio-rustls = { version = "0.25.0", optional = true } url = "2" [dev-dependencies] -mockstream = "0.0.3" - -# to make -Zminimal-versions work -[target.'cfg(any())'.dependencies] -openssl = { version = "0.10.60", optional = true } +tokio = { version = "1.35.1", features = ["rt", "macros"] } +tokio-test = "0.4.3" [[bin]] name = "loadtest" diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index e5a24e41..1b21368a 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -5,15 +5,15 @@ use rand::prelude::*; use std::io; use std::process; use std::sync::{self, atomic}; -use std::thread; use std::time; const QUEUES: &[&str] = &["queue0", "queue1", "queue2", "queue3", "queue4"]; -fn main() { - let matches = Command::new("My Super Program") +#[tokio::main] +async fn main() { + let matches = Command::new("My Super Program (Async)") .version("0.1") - .about("Benchmark the performance of Rust Faktory consumers and producers") + .about("Benchmark the performance of Rust Faktory async consumers and producers") .arg( Arg::new("jobs") .help("Number of jobs to run") @@ -37,8 +37,10 @@ fn main() { jobs, threads ); - // ensure that we can actually connect to the server - if let Err(e) = Producer::connect(None) { + // ensure that we can actually connect to the server; + // will create a client, run a handshake with Faktory, + // and drop the cliet immediately afterwards; + if let Err(e) = Producer::connect(None).await { println!("{}", e); process::exit(1); } @@ -47,25 +49,27 @@ fn main() { let popped = sync::Arc::new(atomic::AtomicUsize::new(0)); let start = time::Instant::now(); - let threads: Vec>> = (0..threads) + let threads: Vec>> = (0..threads) .map(|_| { let pushed = sync::Arc::clone(&pushed); let popped = sync::Arc::clone(&popped); - thread::spawn(move || { + tokio::spawn(async move { // make producer and consumer - let mut p = Producer::connect(None).unwrap(); + let mut p = Producer::connect(None).await.unwrap(); let mut c = ConsumerBuilder::default(); c.register("SomeJob", |_| { - let mut rng = rand::thread_rng(); - if rng.gen_bool(0.01) { - Err(io::Error::new(io::ErrorKind::Other, "worker closed")) - } else { - Ok(()) - } + Box::pin(async move { + let mut rng = rand::thread_rng(); + if rng.gen_bool(0.01) { + Err(io::Error::new(io::ErrorKind::Other, "worker closed")) + } else { + Ok(()) + } + }) }); - let mut c = c.connect(None).unwrap(); + let mut c = c.connect(None).await.unwrap(); - let mut rng = rand::thread_rng(); + let mut rng = rand::rngs::OsRng; let mut random_queues = Vec::from(QUEUES); random_queues.shuffle(&mut rng); for idx in 0..jobs { @@ -77,13 +81,13 @@ fn main() { ); job.priority = Some(rng.gen_range(1..10)); job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job)?; + p.enqueue(job).await?; if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { return Ok(idx); } } else { // pop - c.run_one(0, &random_queues[..])?; + c.run_one(0, &random_queues[..]).await?; if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { return Ok(idx); } @@ -94,7 +98,10 @@ fn main() { }) .collect(); - let _ops_count: Result, _> = threads.into_iter().map(|jt| jt.join().unwrap()).collect(); + let mut _ops_count = Vec::with_capacity(threads.len()); + for jh in threads { + _ops_count.push(jh.await.unwrap()) + } let stop = start.elapsed(); let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); let stop_secs = stop_secs as f64 / 1_000_000_000.0; diff --git a/src/consumer/builder.rs b/src/consumer/builder.rs new file mode 100644 index 00000000..4b558425 --- /dev/null +++ b/src/consumer/builder.rs @@ -0,0 +1,131 @@ +use super::{runner::Closure, CallbacksRegistry, Client, Consumer}; +use crate::{ + proto::{ + utils::{get_env_url, host_from_url, url_parse}, + ClientOptions, + }, + Error, Job, JobRunner, +}; +use std::future::Future; +use std::pin::Pin; +use tokio::io::{AsyncRead, AsyncWrite, BufStream}; +use tokio::net::TcpStream as TokioStream; + +/// Convenience wrapper for building a Faktory worker. +/// +/// See the [`Consumer`] documentation for details. +pub struct ConsumerBuilder { + opts: ClientOptions, + workers_count: usize, + callbacks: CallbacksRegistry, +} + +impl ConsumerBuilder { + /// Create a builder for asynchronous version of `Consumer`. + pub fn default_async() -> ConsumerBuilder { + ConsumerBuilder::default() + } +} + +impl Default for ConsumerBuilder { + /// Create a builder for asynchronous version of `Consumer`. + /// + /// See [`ConsumerBuilder`](struct.ConsumerBuilder.html) + fn default() -> Self { + ConsumerBuilder { + opts: ClientOptions::default(), + workers_count: 1, + callbacks: CallbacksRegistry::default(), + } + } +} + +impl ConsumerBuilder { + /// Set the hostname to use for this worker. + /// + /// Defaults to the machine's hostname as reported by the operating system. + pub fn hostname(&mut self, hn: String) -> &mut Self { + self.opts.hostname = Some(hn); + self + } + + /// Set a unique identifier for this worker. + /// + /// Defaults to a randomly generated 32-char ASCII string. + pub fn wid(&mut self, wid: String) -> &mut Self { + self.opts.wid = Some(wid); + self + } + + /// Set the labels to use for this worker. + /// + /// Defaults to `["rust"]`. + pub fn labels(&mut self, labels: Vec) -> &mut Self { + self.opts.labels = labels; + self + } + + /// Set the number of workers to use `run` and `run_to_completion`. + /// + /// Defaults to 1. + pub fn workers(&mut self, w: usize) -> &mut Self { + self.workers_count = w; + self + } + + /// Register a handler function for the given job type (`kind`). + /// + /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler + /// function is called with that job as its argument. + pub fn register(&mut self, kind: K, handler: H) -> &mut Self + where + K: Into, + H: Send + Sync + Fn(Job) -> Pin> + Send>> + 'static, + { + self.register_runner(kind, Closure(handler)); + self + } + + /// Register a handler for the given job type (`kind`). + /// + /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler + /// object is called with that job as its argument. + pub fn register_runner(&mut self, kind: K, runner: H) -> &mut Self + where + K: Into, + H: JobRunner + 'static, + { + self.callbacks.insert(kind.into(), Box::new(runner)); + self + } + + /// Asynchronously connect to a Faktory server with a non-standard stream. + pub async fn connect_with( + mut self, + stream: S, + pwd: Option, + ) -> Result, E>, Error> { + self.opts.password = pwd; + self.opts.is_worker = true; + let buffered = BufStream::new(stream); + let client = Client::new(buffered, self.opts).await?; + Ok(Consumer::new(client, self.workers_count, self.callbacks).await) + } + + /// Asynchronously connect to a Faktory server. + /// + /// See [`connect`](struct.ConsumerBuilder.html#structmethod.connect). + pub async fn connect( + self, + url: Option<&str>, + ) -> Result, E>, Error> { + let url = match url { + Some(url) => url_parse(url), + None => url_parse(&get_env_url()), + }?; + let stream = TokioStream::connect(host_from_url(&url)).await?; + let buffered = BufStream::new(stream); + let client = Client::new(buffered, self.opts).await?; + Ok(Consumer::new(client, self.workers_count, self.callbacks).await) + } +} diff --git a/src/consumer/health.rs b/src/consumer/health.rs new file mode 100644 index 00000000..50ff2def --- /dev/null +++ b/src/consumer/health.rs @@ -0,0 +1,78 @@ +use super::{Consumer, STATUS_QUIET, STATUS_RUNNING, STATUS_TERMINATING}; +use crate::{proto::HeartbeatStatus, Error, Reconnect}; +use std::{ + error::Error as StdError, + sync::{atomic, Arc}, + time, +}; +use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::time::sleep as tokio_sleep; + +impl< + S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, + E: StdError + 'static + Send, + > Consumer +{ + pub(crate) async fn listen_for_heartbeats( + &mut self, + statuses: &Vec>, + ) -> Result { + let mut target = STATUS_RUNNING; + + let mut last = time::Instant::now(); + + loop { + tokio_sleep(time::Duration::from_millis(100)).await; + + // has a worker failed? + if target == STATUS_RUNNING + && statuses + .iter() + .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) + { + // tell all workers to exit + // (though chances are they've all failed already) + for s in statuses { + s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); + } + break Ok(false); + } + + if last.elapsed().as_secs() < 5 { + // don't sent a heartbeat yet + continue; + } + + match self.c.heartbeat().await { + Ok(hb) => { + match hb { + HeartbeatStatus::Ok => {} + HeartbeatStatus::Quiet => { + // tell the workers to eventually terminate + for s in statuses { + s.store(STATUS_QUIET, atomic::Ordering::SeqCst); + } + target = STATUS_QUIET; + } + HeartbeatStatus::Terminate => { + // tell the workers to terminate + // *and* fail the current job and immediately return + for s in statuses { + s.store(STATUS_QUIET, atomic::Ordering::SeqCst); + } + break Ok(true); + } + } + } + Err(e) => { + // for this to fail, the workers have probably also failed + for s in statuses { + s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); + } + break Err(e); + } + } + last = time::Instant::now(); + } + } +} diff --git a/src/consumer/mod.rs b/src/consumer/mod.rs index 119b64f3..2139bc76 100644 --- a/src/consumer/mod.rs +++ b/src/consumer/mod.rs @@ -1,100 +1,25 @@ -use crate::error::Error; -use crate::proto::{ - self, parse_provided_or_from_env, Ack, Client, ClientOptions, Fail, HeartbeatStatus, Job, - Reconnect, +use super::proto::{Client, Reconnect}; +use crate::{ + proto::{Ack, Fail}, + Error, Job, }; -use fnv::FnvHashMap; -use std::error::Error as StdError; -use std::io::prelude::*; -use std::net::TcpStream; -use std::sync::{atomic, Arc, Mutex}; +use std::sync::{atomic, Arc}; +use std::{error::Error as StdError, sync::atomic::AtomicUsize}; +use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::task::JoinHandle; -const STATUS_RUNNING: usize = 0; -const STATUS_QUIET: usize = 1; -const STATUS_TERMINATING: usize = 2; +mod builder; +mod health; +mod registries; +mod runner; -/// Implementations of this trait can be registered to run jobs in a `Consumer`. -/// -/// # Example -/// -/// Create a worker with all default options, register a single handler (for the `foo` job -/// type), connect to the Faktory server, and start accepting jobs. -/// The handler is a struct that implements `JobRunner`. -/// -/// ```no_run -/// use faktory::{ConsumerBuilder, JobRunner, Job}; -/// use std::io; -/// -/// struct MyHandler { -/// config: String, -/// } -/// impl JobRunner for MyHandler { -/// type Error = io::Error; -/// fn run(&self, job: Job) -> Result<(), Self::Error> { -/// println!("config: {}", self.config); -/// println!("job: {:?}", job); -/// Ok(()) -/// } -/// } -/// -/// let mut c = ConsumerBuilder::default(); -/// let handler = MyHandler { -/// config: "bar".to_string(), -/// }; -/// c.register_runner("foo", handler); -/// let mut c = c.connect(None).unwrap(); -/// if let Err(e) = c.run(&["default"]) { -/// println!("worker failed: {}", e); -/// } -/// ``` -pub trait JobRunner: Send + Sync { - /// The error type that the handler may return. - type Error; - /// A handler function that runs a job. - fn run(&self, job: Job) -> Result<(), Self::Error>; -} -type BoxedJobRunner = Box>; -// Implements JobRunner for a closure that takes a Job and returns a Result<(), E> -impl JobRunner for Box -where - F: Fn(Job) -> Result<(), E> + Send + Sync, -{ - type Error = E; - fn run(&self, job: Job) -> Result<(), E> { - self(job) - } -} +pub use builder::ConsumerBuilder; +use registries::{CallbacksRegistry, StatesRegistry}; +pub use runner::JobRunner; -// Additional Blanket Implementations -impl<'a, E, F> JobRunner for &'a F -where - F: Fn(Job) -> Result<(), E> + Send + Sync, -{ - type Error = E; - fn run(&self, job: Job) -> Result<(), E> { - self(job) - } -} -impl<'a, E, F> JobRunner for &'a mut F -where - F: Fn(Job) -> Result<(), E> + Send + Sync, -{ - type Error = E; - fn run(&self, job: Job) -> Result<(), E> { - (self as &F)(job) - } -} -#[repr(transparent)] -struct Closure(F); -impl JobRunner for Closure -where - F: Fn(Job) -> Result<(), E> + Send + Sync, -{ - type Error = E; - fn run(&self, job: Job) -> Result<(), E> { - (self.0)(job) - } -} +pub(crate) const STATUS_RUNNING: usize = 0; +pub(crate) const STATUS_QUIET: usize = 1; +pub(crate) const STATUS_TERMINATING: usize = 2; /// `Consumer` is used to run a worker that processes jobs provided by Faktory. /// @@ -165,9 +90,9 @@ where /// /// If all this process is doing is handling jobs, reconnecting on failure, and exiting when told /// to by the Faktory server, you should use -/// [`run_to_completion`](struct.Consumer.html#method.run_to_completion). If you want more +/// [`run_to_completion`](Consumer::run_to_completion). If you want more /// fine-grained control over the lifetime of your process, you should use -/// [`Consumer::run`](struct.Consumer.html#method.run). See the documentation for each of these +/// [`run`](Consumer::run). See the documentation for each of these /// methods for details. /// /// # Examples @@ -176,282 +101,201 @@ where /// type), connect to the Faktory server, and start accepting jobs. /// /// ```no_run +/// # tokio_test::block_on(async { /// use faktory::ConsumerBuilder; /// use std::io; +/// /// let mut c = ConsumerBuilder::default(); -/// c.register("foobar", |job| -> io::Result<()> { +/// c.register("foobar", |job| Box::pin(async move { /// println!("{:?}", job); -/// Ok(()) -/// }); -/// let mut c = c.connect(None).unwrap(); -/// if let Err(e) = c.run(&["default"]) { +/// Ok::<(), io::Error>(()) +/// })); +/// let mut c = c.connect(None).await.unwrap(); +/// if let Err(e) = c.run(&["default"]).await { /// println!("worker failed: {}", e); /// } +/// # }); /// ``` -pub struct Consumer -where - S: Read + Write, -{ +/// +pub struct Consumer { c: Client, - worker_states: Arc>>, - callbacks: Arc>>, + worker_states: Arc, + callbacks: Arc>, terminated: bool, } -#[derive(Default)] -struct WorkerState { - last_job_result: Option>, - running_job: Option, -} - -/// Convenience wrapper for building a Faktory worker. -/// -/// See the [`Consumer`](struct.Consumer.html) documentation for details. -pub struct ConsumerBuilder { - opts: ClientOptions, - workers: usize, - callbacks: FnvHashMap>, +impl Consumer { + async fn reconnect(&mut self) -> Result<(), Error> { + self.c.reconnect().await + } } -impl Default for ConsumerBuilder { - /// Construct a new worker with default worker options and the url fetched from environment - /// variables. - /// - /// This will construct a worker where: - /// - /// - `hostname` is this machine's hostname. - /// - `wid` is a randomly generated string. - /// - `pid` is the OS PID of this process. - /// - `labels` is `["rust"]`. - /// - fn default() -> Self { - ConsumerBuilder { - opts: ClientOptions::default(), - workers: 1, - callbacks: Default::default(), +impl Consumer { + async fn new(c: Client, workers_count: usize, callbacks: CallbacksRegistry) -> Self { + Consumer { + c, + callbacks: Arc::new(callbacks), + worker_states: Arc::new(StatesRegistry::new(workers_count)), + terminated: false, } } } -impl ConsumerBuilder { - /// Set the hostname to use for this worker. - /// - /// Defaults to the machine's hostname as reported by the operating system. - pub fn hostname(&mut self, hn: String) -> &mut Self { - self.opts.hostname = Some(hn); - self - } - - /// Set a unique identifier for this worker. - /// - /// Defaults to a randomly generated ASCII string. - pub fn wid(&mut self, wid: String) -> &mut Self { - self.opts.wid = Some(wid); - self - } - - /// Set the labels to use for this worker. - /// - /// Defaults to `["rust"]`. - pub fn labels(&mut self, labels: Vec) -> &mut Self { - self.opts.labels = labels; - self - } +enum Failed { + Application(E), + BadJobType(String), +} - /// Set the number of workers to use for `run` and `run_to_completion_*`. - /// - /// Defaults to 1. - pub fn workers(&mut self, w: usize) -> &mut Self { - self.workers = w; - self +impl + Consumer +{ + async fn run_job(&mut self, job: Job) -> Result<(), Failed> { + let handler = self + .callbacks + .get(job.kind()) + .ok_or(Failed::BadJobType(job.kind().to_string()))?; + handler.run(job).await.map_err(Failed::Application) } - /// Register a handler function for the given job type (`kind`). - /// - /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler - /// function is called with that job as its argument. - pub fn register(&mut self, kind: K, handler: H) -> &mut Self - where - K: Into, - H: Fn(Job) -> Result<(), E> + Send + Sync + 'static, - { - self.register_runner(kind, Closure(handler)) + async fn report_failure_to_server(&mut self, f: &Fail) -> Result<(), Error> { + self.c.issue(f).await?.read_ok().await } - /// Register a handler for the given job type (`kind`). - /// - /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler - /// object is called with that job as its argument. - pub fn register_runner(&mut self, kind: K, runner: H) -> &mut Self - where - K: Into, - H: JobRunner + 'static, - { - self.callbacks.insert(kind.into(), Box::new(runner)); - self + async fn report_success_to_server(&mut self, jid: impl Into) -> Result<(), Error> { + self.c.issue(&Ack::new(jid)).await?.read_ok().await } - /// Connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - /// - /// If `url` is given, but does not specify a port, it defaults to 7419. - pub fn connect(self, url: Option<&str>) -> Result, Error> { - let url = parse_provided_or_from_env(url)?; - let stream = TcpStream::connect(proto::host_from_url(&url))?; - Self::connect_with(self, stream, url.password().map(|p| p.to_string())) - } + async fn report_on_all_workers(&mut self) -> Result<(), Error> { + let worker_states = Arc::get_mut(&mut self.worker_states) + .expect("all workers are scoped to &mut of the user-code-visible Consumer"); - /// Connect to a Faktory server with a non-standard stream. - pub fn connect_with( - mut self, - stream: S, - pwd: Option, - ) -> Result, Error> { - self.opts.password = pwd; - self.opts.is_worker = true; - Ok(Consumer::new( - Client::new(stream, self.opts)?, - self.workers, - self.callbacks, - )) - } -} + // retry delivering notification about our last job result. + // we know there's no leftover thread at this point, so there's no race on the option. + for wstate in worker_states.iter_mut() { + let wstate = wstate.get_mut().unwrap(); + if let Some(res) = wstate.last_job_result.take() { + let r = match res { + Ok(ref jid) => self.c.issue(&Ack::new(jid)).await, + Err(ref fail) => self.c.issue(fail).await, + }; -enum Failed { - Application(E), - BadJobType(String), -} + let r = match r { + Ok(r) => r, + Err(e) => { + wstate.last_job_result = Some(res); + return Err(e); + } + }; -impl Consumer { - fn new(c: Client, workers: usize, callbacks: FnvHashMap>) -> Self { - Consumer { - c, - callbacks: Arc::new(callbacks), - worker_states: Arc::new((0..workers).map(|_| Default::default()).collect()), - terminated: false, + if let Err(e) = r.read_ok().await { + // it could be that the server did previously get our ACK/FAIL, and that it was + // the resulting OK that failed. in that case, we would get an error response + // when re-sending the job response. this should not count as critical. other + // errors, however, should! + if let Error::IO(_) = e { + wstate.last_job_result = Some(res); + return Err(e); + } + } + } } - } -} -impl Consumer { - fn reconnect(&mut self) -> Result<(), Error> { - self.c.reconnect() + Ok(()) } -} -impl Consumer -where - S: Read + Write, - E: StdError, -{ - fn run_job(&mut self, job: Job) -> Result<(), Failed> { - match self.callbacks.get(&job.kind) { - Some(callback) => callback.run(job).map_err(Failed::Application), - None => { - // cannot execute job, since no handler exists - Err(Failed::BadJobType(job.kind)) + // FAIL currently running jobs even though they're still running. + // Returns the number of workers that may still be processing jobs. + // We are ignoring any FAIL command issue errors, since this is already + // an "emergency" case. + async fn force_fail_all_workers(&mut self) -> usize { + let mut running = 0; + for wstate in self.worker_states.iter() { + let may_be_jid = wstate.lock().unwrap().running_job.take(); + if let Some(jid) = may_be_jid { + running += 1; + let f = Fail::new(&*jid, "unknown", "terminated"); + let _ = match self.c.issue(&f).await { + Ok(r) => r.read_ok().await, + Err(_) => continue, + } + .is_ok(); } } + running } - /// Fetch and run a single job on the current thread, and then return. - pub fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result + /// Fetch and run a single job, and then return. + pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result where - Q: AsRef, + Q: AsRef + Sync, { - // get a job - let job = match self.c.fetch(queues)? { - Some(job) => job, + let job = match self.c.fetch(queues).await? { None => return Ok(false), + Some(j) => j, }; - // remember the job id let jid = job.jid.clone(); - // keep track of running job in case we're terminated during it - self.worker_states[worker].lock().unwrap().running_job = Some(jid.clone()); - - // process the job - let r = self.run_job(job); + self.worker_states.register_running(worker, jid.clone()); - // report back - match r { + match self.run_job(job).await { Ok(_) => { - // job done -- acknowledge - // remember it in case we fail to notify the server (e.g., broken connection) - self.worker_states[worker].lock().unwrap().last_job_result = Some(Ok(jid.clone())); - self.c.issue(&Ack::new(jid))?.await_ok()?; + self.worker_states.register_success(worker, jid.clone()); + self.report_success_to_server(jid).await?; } Err(e) => { - // job failed -- let server know - // "unknown" is the errtype used by the go library too let fail = match e { - Failed::BadJobType(jt) => { - Fail::new(jid, "unknown", format!("No handler for {}", jt)) - } - Failed::Application(e) => { - let mut f = Fail::new(jid, "unknown", format!("{}", e)); - let mut root = e.source(); - let mut backtrace = Vec::new(); - while let Some(r) = root.take() { - backtrace.push(format!("{}", r)); - root = r.source(); - } - f.set_backtrace(backtrace); - f - } + Failed::BadJobType(jt) => Fail::generic(jid, format!("No handler for {}", jt)), + Failed::Application(e) => Fail::generic_with_backtrace(jid, e), }; - - let fail2 = fail.clone(); - self.worker_states[worker].lock().unwrap().last_job_result = Some(Err(fail)); - self.c.issue(&fail2)?.await_ok()?; + self.worker_states.register_failure(worker, &fail); + self.report_failure_to_server(&fail).await?; } } - // we won't have to tell the server again - { - let mut state = self.worker_states[worker].lock().unwrap(); - state.last_job_result = None; - state.running_job = None; - } - Ok(true) - } + self.worker_states.reset(worker); - #[cfg(test)] - pub(crate) fn run_n(&mut self, n: usize, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef, - { - for _ in 0..n { - self.run_one(0, queues)?; - } - Ok(()) + Ok(true) } } -impl Consumer -where - S: Read + Write + Reconnect + Send + 'static, - E: StdError + 'static, +impl< + S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, + E: StdError + 'static + Send, + > Consumer { - fn for_worker(&mut self) -> Result { + async fn for_worker(&mut self) -> Result { Ok(Consumer { - c: self.c.connect_again()?, + c: self.c.connect_again().await?, callbacks: Arc::clone(&self.callbacks), worker_states: Arc::clone(&self.worker_states), terminated: self.terminated, }) } + async fn spawn_worker( + &mut self, + status: Arc, + worker: usize, + queues: &[Q], + ) -> Result>, Error> + where + Q: AsRef, + { + let mut w = self.for_worker().await?; + let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); + Ok(tokio::spawn(async move { + while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { + if let Err(e) = w.run_one(worker, &queues[..]).await { + status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); + return Err(e); + } + } + status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); + Ok(()) + })) + } + /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or /// until the server tells the worker to disengage (`Ok` is returned). /// @@ -462,132 +306,29 @@ where /// a job success or failure, the result will be re-reported to the server without re-executing /// the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), the /// worker should **not** try to resume by calling `run` again. This will cause a panic. - pub fn run(&mut self, queues: &[Q]) -> Result + pub async fn run(&mut self, queues: &[Q]) -> Result where Q: AsRef, { assert!(!self.terminated, "do not re-run a terminated worker"); - let worker_states = Arc::get_mut(&mut self.worker_states) - .expect("all workers are scoped to &mut of the user-code-visible Consumer"); - - // retry delivering notification about our last job result. - // we know there's no leftover thread at this point, so there's no race on the option. - for wstate in worker_states.iter_mut() { - let wstate = wstate.get_mut().unwrap(); - if let Some(res) = wstate.last_job_result.take() { - let r = match res { - Ok(ref jid) => self.c.issue(&Ack::new(&**jid)), - Err(ref fail) => self.c.issue(fail), - }; - - let r = match r { - Ok(r) => r, - Err(e) => { - wstate.last_job_result = Some(res); - return Err(e); - } - }; + self.report_on_all_workers().await?; - if let Err(e) = r.await_ok() { - // it could be that the server did previously get our ACK/FAIL, and that it was - // the resulting OK that failed. in that case, we would get an error response - // when re-sending the job response. this should not count as critical. other - // errors, however, should! - if let Error::IO(_) = e { - wstate.last_job_result = Some(res); - return Err(e); - } - } - } - } + let workers_count = self.worker_states.len(); // keep track of the current status of each worker - let status: Vec<_> = (0..self.worker_states.len()) + let statuses: Vec<_> = (0..workers_count) .map(|_| Arc::new(atomic::AtomicUsize::new(STATUS_RUNNING))) .collect(); - // start worker threads - use std::thread; - let workers = status - .iter() - .enumerate() - .map(|(worker, status)| { - let mut w = self.for_worker()?; - let status = Arc::clone(status); - let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); - Ok(thread::spawn(move || { - while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { - if let Err(e) = w.run_one(worker, &queues[..]) { - status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - return Err(e); - } - } - status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - Ok(()) - })) - }) - .collect::, Error>>()?; - - // listen for heartbeats - let mut target = STATUS_RUNNING; - let exit = { - use std::time; - let mut last = time::Instant::now(); - - loop { - thread::sleep(time::Duration::from_millis(100)); - - // has a worker failed? - if target == STATUS_RUNNING - && status - .iter() - .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) - { - // tell all workers to exit - // (though chances are they've all failed already) - for s in &status { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - break Ok(false); - } + let mut workers = Vec::with_capacity(workers_count); + for (worker, status) in statuses.iter().enumerate().take(workers_count) { + let handle = self + .spawn_worker(Arc::clone(status), worker, queues) + .await?; + workers.push(handle) + } - if last.elapsed().as_secs() < 5 { - // don't sent a heartbeat yet - continue; - } - - match self.c.heartbeat() { - Ok(hb) => { - match hb { - HeartbeatStatus::Ok => {} - HeartbeatStatus::Quiet => { - // tell the workers to eventually terminate - for s in &status { - s.store(STATUS_QUIET, atomic::Ordering::SeqCst); - } - target = STATUS_QUIET; - } - HeartbeatStatus::Terminate => { - // tell the workers to terminate - // *and* fail the current job and immediately return - for s in &status { - s.store(STATUS_QUIET, atomic::Ordering::SeqCst); - } - break Ok(true); - } - } - } - Err(e) => { - // for this to fail, the workers have probably also failed - for s in &status { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - break Err(e); - } - } - last = time::Instant::now(); - } - }; + let exit = self.listen_for_heartbeats(&statuses).await; // there are a couple of cases here: // @@ -596,56 +337,37 @@ where // - we got an error from heartbeat() // self.terminated = exit.is_ok(); - if let Ok(true) = exit { - // FAIL currently running jobs even though they're still running - let mut running = 0; - for wstate in self.worker_states.iter() { - if let Some(jid) = wstate.lock().unwrap().running_job.take() { - let f = Fail::new(&*jid, "unknown", "terminated"); - - // if this fails, we don't want to exit with Err(), - // because we *were* still terminated! - let _ = self.c.issue(&f).and_then(|r| r.await_ok()).is_ok(); - - running += 1; - } - } + if let Ok(true) = exit { + let running = self.force_fail_all_workers().await; if running != 0 { return Ok(running); } } + // we want to expose worker errors, or otherwise the heartbeat error + let mut results = Vec::with_capacity(workers_count); + for w in workers { + results.push(w.await.expect("joined ok")); + } + let result = results.into_iter().collect::, _>>(); + match exit { - Ok(_) => { - // we want to expose any worker errors - workers - .into_iter() - .map(|w| w.join().unwrap()) - .collect::, _>>() - .map(|_| 0) - } - Err(e) => { - // we want to expose worker errors, or otherwise the heartbeat error - workers - .into_iter() - .map(|w| w.join().unwrap()) - .collect::, _>>() - .and(Err(e)) - } + Ok(_) => result.map(|_| 0), + Err(e) => result.and(Err(e)), } } /// Run this worker until the server tells us to exit or a connection cannot be re-established. /// /// This function never returns. When the worker decides to exit, the process is terminated. - pub fn run_to_completion(mut self, queues: &[Q]) -> ! + pub async fn run_to_completion(mut self, queues: &[Q]) -> ! where Q: AsRef, { use std::process; - while self.run(queues).is_err() { - if self.reconnect().is_err() { + while self.run(queues).await.is_err() { + if self.reconnect().await.is_err() { break; } } @@ -653,34 +375,3 @@ where process::exit(0); } } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - // https://github.com/rust-lang/rust/pull/42219 - //#[allow_fail] - #[ignore] - fn it_works() { - use crate::producer::Producer; - use std::io; - - let mut p = Producer::connect(None).unwrap(); - let mut j = Job::new("foobar", vec!["z"]); - j.queue = "worker_test_1".to_string(); - p.enqueue(j).unwrap(); - - let mut c = ConsumerBuilder::default(); - c.register("foobar", |job: Job| -> Result<(), io::Error> { - assert_eq!(job.args, vec!["z"]); - Ok(()) - }); - let mut c = c.connect(None).unwrap(); - let e = c.run_n(1, &["worker_test_1"]); - if e.is_err() { - println!("{:?}", e); - } - assert!(e.is_ok()); - } -} diff --git a/src/consumer/registries.rs b/src/consumer/registries.rs new file mode 100644 index 00000000..9cec6c4f --- /dev/null +++ b/src/consumer/registries.rs @@ -0,0 +1,77 @@ +use super::runner::BoxedJobRunner; +use crate::proto::Fail; +use fnv::FnvHashMap; +use std::{ + ops::{Deref, DerefMut}, + sync::Mutex, +}; + +// --------------- CALLBACKS (Job Handlers) ---------------- + +pub(crate) struct CallbacksRegistry(FnvHashMap>); + +impl Deref for CallbacksRegistry { + type Target = FnvHashMap>; + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl DerefMut for CallbacksRegistry { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } +} + +impl Default for CallbacksRegistry { + fn default() -> CallbacksRegistry { + Self(FnvHashMap::default()) + } +} + +// -------------------- WORKER STATES --------------------- + +#[derive(Default)] +pub(crate) struct WorkerState { + pub(crate) last_job_result: Option>, + pub(crate) running_job: Option, +} + +pub(crate) struct StatesRegistry(Vec>); + +impl Deref for StatesRegistry { + type Target = Vec>; + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl DerefMut for StatesRegistry { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } +} + +impl StatesRegistry { + pub(crate) fn new(workers_count: usize) -> Self { + Self((0..workers_count).map(|_| Default::default()).collect()) + } + + pub(crate) fn register_running(&self, worker: usize, jid: String) { + self[worker].lock().expect("lock acquired").running_job = Some(jid); + } + + pub(crate) fn register_success(&self, worker: usize, jid: String) { + self[worker].lock().expect("lock acquired").last_job_result = Some(Ok(jid)); + } + + pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { + self[worker].lock().expect("lock acquired").last_job_result = Some(Err(f.clone())); + } + + pub(crate) fn reset(&self, worker: usize) { + let mut state = self[worker].lock().expect("lock acquired"); + state.last_job_result = None; + state.running_job = None; + } +} diff --git a/src/consumer/runner.rs b/src/consumer/runner.rs new file mode 100644 index 00000000..6a181bc2 --- /dev/null +++ b/src/consumer/runner.rs @@ -0,0 +1,99 @@ +use crate::Job; +use std::{future::Future, pin::Pin}; + +/// Implementations of this trait can be registered to run jobs in a `Consumer`. +/// +/// # Example +/// +/// Create a worker with all default options, register a single handler (for the `foo` job +/// type), connect to the Faktory server, and start accepting jobs. +/// The handler is a struct that implements `JobRunner`. +/// +/// ```no_run +/// # tokio_test::block_on(async { +/// use faktory::{ConsumerBuilder, JobRunner, Job}; +/// use std::io; +/// +/// struct MyHandler { +/// config: String, +/// } +/// +/// #[async_trait::async_trait] +/// impl JobRunner for MyHandler { +/// type Error = io::Error; +/// async fn run(&self, job: Job) -> Result<(), Self::Error> { +/// println!("config: {}", self.config); +/// println!("job: {:?}", job); +/// Ok(()) +/// } +/// } +/// +/// let mut c = ConsumerBuilder::default(); +/// let handler = MyHandler { +/// config: "bar".to_string(), +/// }; +/// c.register_runner("foo", handler); +/// let mut c = c.connect(None).await.unwrap(); +/// if let Err(e) = c.run(&["default"]).await { +/// println!("worker failed: {}", e); +/// } +/// }); +/// ``` +#[async_trait::async_trait] +pub trait JobRunner: Send + Sync { + /// The error type that the handler may return. + type Error; + /// A handler function that runs a job. + async fn run(&self, job: Job) -> Result<(), Self::Error>; +} + +// Implements JobRunner for a closure that takes a Job and returns a Result<(), E> +#[async_trait::async_trait] +impl JobRunner for Box +where + F: Send + Sync + Fn(Job) -> Pin> + Send>>, +{ + type Error = E; + async fn run(&self, job: Job) -> Result<(), E> { + self(job).await + } +} + +// Additional Blanket Implementations +#[async_trait::async_trait] +impl<'a, E, F> JobRunner for &'a F +where + F: Send + Sync + Fn(Job) -> Pin> + Send>>, +{ + type Error = E; + async fn run(&self, job: Job) -> Result<(), E> { + self(job).await + } +} + +#[async_trait::async_trait] +impl<'a, E, F> JobRunner for &'a mut F +where + F: Send + Sync + Fn(Job) -> Pin> + Send>>, +{ + type Error = E; + async fn run(&self, job: Job) -> Result<(), E> { + (self as &F)(job).await + } +} + +#[repr(transparent)] +pub(crate) struct Closure(pub F); + +#[async_trait::async_trait] +impl JobRunner for Closure +where + F: Send + Sync + Fn(Job) -> Pin> + Send>>, +{ + type Error = E; + async fn run(&self, job: Job) -> Result<(), E> { + (self.0)(job).await + } +} + +pub(crate) type BoxedJobRunner = Box>; diff --git a/src/error.rs b/src/error.rs index 89de50ff..417ec6eb 100644 --- a/src/error.rs +++ b/src/error.rs @@ -41,12 +41,6 @@ pub enum Error { /// These generally indicate a mismatch between what the client expects and what the server provided. #[error("serialization")] Serialization(#[source] serde_json::Error), - - /// Indicates an error in the underlying TLS stream. - #[cfg(feature = "tls")] - #[cfg_attr(docsrs, doc(cfg(feature = "tls")))] - #[error("underlying tls stream")] - TlsStream(#[source] native_tls::Error), } /// Errors specific to connection logic. diff --git a/src/lib.rs b/src/lib.rs index a2ffaa31..0da91716 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,29 +34,32 @@ //! If you want to **submit** jobs to Faktory, use `Producer`. //! //! ```no_run +//! # tokio_test::block_on(async { //! use faktory::{Producer, Job}; -//! let mut p = Producer::connect(None).unwrap(); -//! p.enqueue(Job::new("foobar", vec!["z"])).unwrap(); +//! let mut p = Producer::connect(None).await.unwrap(); +//! p.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); //! -//! let (enqueued_count, errors) = p.enqueue_many(vec![Job::new("foobar", vec!["z"]), Job::new("foobar", vec!["z"])]).unwrap(); +//! let (enqueued_count, errors) = p.enqueue_many([Job::new("foobar", vec!["z"]), Job::new("foobar", vec!["z"])]).await.unwrap(); //! assert_eq!(enqueued_count, 2); //! assert_eq!(errors, None); +//! }); //! ``` -//! //! If you want to **accept** jobs from Faktory, use `Consumer`. //! //! ```no_run +//! # tokio_test::block_on(async { //! use faktory::ConsumerBuilder; //! use std::io; //! let mut c = ConsumerBuilder::default(); -//! c.register("foobar", |job| -> io::Result<()> { +//! c.register("foobar", |job| Box::pin(async move { //! println!("{:?}", job); -//! Ok(()) -//! }); -//! let mut c = c.connect(None).unwrap(); -//! if let Err(e) = c.run(&["default"]) { +//! Ok::<(), io::Error>(()) +//! })); +//! let mut c = c.connect(None).await.unwrap(); +//! if let Err(e) = c.run(&["default"]).await { //! println!("worker failed: {}", e); //! } +//! # }); //! ``` #![deny(missing_docs)] #![cfg_attr(docsrs, feature(doc_cfg))] diff --git a/src/producer/mod.rs b/src/producer/mod.rs index c92b111c..8589d816 100644 --- a/src/producer/mod.rs +++ b/src/producer/mod.rs @@ -1,8 +1,9 @@ -use crate::error::Error; -use crate::proto::{Client, Info, Job, Push, PushBulk, QueueAction, QueueControl}; use std::collections::HashMap; -use std::io::prelude::*; -use std::net::TcpStream; + +use crate::proto::{Client, Info, Job, Push, PushBulk, QueueAction, QueueControl}; +use crate::Error; +use tokio::io::{AsyncBufReadExt, AsyncRead, AsyncWrite, AsyncWriteExt, BufStream}; +use tokio::net::TcpStream as TokioStream; #[cfg(feature = "ent")] use crate::proto::{Batch, BatchHandle, CommitBatch, OpenBatch}; @@ -46,63 +47,42 @@ use crate::proto::{Batch, BatchHandle, CommitBatch, OpenBatch}; /// Connecting to an unsecured Faktory server using environment variables /// /// ```no_run +/// # tokio_test::block_on(async { /// use faktory::Producer; -/// let p = Producer::connect(None).unwrap(); +/// let p = Producer::connect(None).await.unwrap(); +/// # }); /// ``` /// /// Connecting to a secured Faktory server using an explicit URL /// /// ```no_run +/// # tokio_test::block_on(async { /// use faktory::Producer; -/// let p = Producer::connect(Some("tcp://:hunter2@localhost:7439")).unwrap(); +/// let p = Producer::connect(Some("tcp://:hunter2@localhost:7439")).await.unwrap(); +/// # }) /// ``` /// /// Issuing a job using a `Producer` /// /// ```no_run +/// # tokio_test::block_on(async { /// # use faktory::Producer; -/// # let mut p = Producer::connect(None).unwrap(); +/// # let mut p = Producer::connect(None).await.unwrap(); /// use faktory::Job; -/// p.enqueue(Job::new("foobar", vec!["z"])).unwrap(); +/// p.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); +/// # }); /// ``` /// -// TODO: provide way of inspecting status of job. -pub struct Producer { +pub struct Producer { c: Client, } -impl Producer { - /// Connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - /// - /// If `url` is given, but does not specify a port, it defaults to 7419. - pub fn connect(url: Option<&str>) -> Result { - let c = Client::connect(url)?; - Ok(Producer { c }) - } -} - -impl Producer { - /// Connect to a Faktory server with a non-standard stream. - pub fn connect_with(stream: S, pwd: Option) -> Result, Error> { - let c = Client::connect_with(stream, pwd)?; - Ok(Producer { c }) - } - - /// Enqueue the given job on the Faktory server. +impl Producer { + /// Asynchronously enqueue the given job on the Faktory server. /// /// Returns `Ok` if the job was successfully queued by the Faktory server. - pub fn enqueue(&mut self, job: Job) -> Result<(), Error> { - self.c.issue(&Push::from(job))?.await_ok() + pub async fn enqueue(&mut self, job: Job) -> Result<(), Error> { + self.c.issue(&Push::from(job)).await?.read_ok().await } /// Enqueue numerous jobs on the Faktory server. @@ -116,7 +96,7 @@ impl Producer { /// /// Note that this is not an all-or-nothing operation: jobs that contain errors will not be enqueued, /// while those that are error-free _will_ be enqueued by the Faktory server. - pub fn enqueue_many( + pub async fn enqueue_many( &mut self, jobs: J, ) -> Result<(usize, Option>), Error> @@ -128,8 +108,10 @@ impl Producer { let jobs_count = jobs.len(); let errors: HashMap = self .c - .issue(&PushBulk::from(jobs.collect::>()))? - .read_json()? + .issue(&PushBulk::from(jobs.collect::>())) + .await? + .read_json() + .await? .expect("Faktory server sends {} literal when there are no errors"); if errors.is_empty() { return Ok((jobs_count, None)); @@ -140,32 +122,44 @@ impl Producer { /// Retrieve information about the running server. /// /// The returned value is the result of running the `INFO` command on the server. - pub fn info(&mut self) -> Result { + pub async fn info(&mut self) -> Result { self.c - .issue(&Info)? + .issue(&Info) + .await? .read_json() + .await .map(|v| v.expect("info command cannot give empty response")) } /// Pause the given queues. - pub fn queue_pause>(&mut self, queues: &[T]) -> Result<(), Error> { + pub async fn queue_pause(&mut self, queues: &[Q]) -> Result<(), Error> + where + Q: AsRef + Sync, + { self.c - .issue(&QueueControl::new(QueueAction::Pause, queues))? - .await_ok() + .issue(&QueueControl::new(QueueAction::Pause, queues)) + .await? + .read_ok() + .await } /// Resume the given queues. - pub fn queue_resume>(&mut self, queues: &[T]) -> Result<(), Error> { + pub async fn queue_resume>(&mut self, queues: &[Q]) -> Result<(), Error> + where + Q: AsRef + Sync, + { self.c - .issue(&QueueControl::new(QueueAction::Resume, queues))? - .await_ok() + .issue(&QueueControl::new(QueueAction::Resume, queues)) + .await? + .read_ok() + .await } /// Initiate a new batch of jobs. #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] - pub fn start_batch(&mut self, batch: Batch) -> Result, Error> { - let bid = self.c.issue(&batch)?.read_bid()?; + pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { + let bid = self.c.issue(&batch).await?.read_bid().await?; Ok(BatchHandle::new(bid, self)) } @@ -175,27 +169,50 @@ impl Producer { /// rather `Ok(None)` will be returned. #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] - pub fn open_batch(&mut self, bid: String) -> Result>, Error> { - let bid = self.c.issue(&OpenBatch::from(bid))?.maybe_bid()?; + pub async fn open_batch(&mut self, bid: String) -> Result>, Error> { + let bid = self + .c + .issue(&OpenBatch::from(bid)) + .await? + .maybe_bid() + .await?; Ok(bid.map(|bid| BatchHandle::new(bid, self))) } #[cfg(feature = "ent")] - pub(crate) fn commit_batch(&mut self, bid: String) -> Result<(), Error> { - self.c.issue(&CommitBatch::from(bid))?.await_ok() + pub(crate) async fn commit_batch(&mut self, bid: String) -> Result<(), Error> { + self.c.issue(&CommitBatch::from(bid)).await?.read_ok().await } } -#[cfg(test)] -mod tests { - use super::*; +impl Producer> { + /// Connect to a Faktory server with a non-standard stream. + pub async fn connect_with( + stream: S, + pwd: Option, + ) -> Result>, Error> { + let buffered = BufStream::new(stream); + let c = Client::connect_with(buffered, pwd).await?; + Ok(Producer { c }) + } +} - #[test] - // https://github.com/rust-lang/rust/pull/42219 - //#[allow_fail] - #[ignore] - fn it_works() { - let mut p = Producer::connect(None).unwrap(); - p.enqueue(Job::new("foobar", vec!["z"])).unwrap(); +impl Producer> { + /// Create a producer and asynchronously connect to a Faktory server. + /// + /// If `url` is not given, will use the standard Faktory environment variables. Specifically, + /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address + /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the + /// server address. If the latter environment variable is not defined, the connection will be + /// made to + /// + /// ```text + /// tcp://localhost:7419 + /// ``` + /// + /// If `url` is given, but does not specify a port, it defaults to 7419. + pub async fn connect(url: Option<&str>) -> Result { + let c = Client::connect(url).await?; + Ok(Producer { c }) } } diff --git a/src/proto/batch/cmd.rs b/src/proto/batch/cmd.rs index a6c57367..106e0b8f 100644 --- a/src/proto/batch/cmd.rs +++ b/src/proto/batch/cmd.rs @@ -1,66 +1,43 @@ use crate::ent::Batch; use crate::proto::single::FaktoryCommand; use crate::Error; -use std::io::Write; +use tokio::io::AsyncWriteExt; +#[async_trait::async_trait] impl FaktoryCommand for Batch { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"BATCH NEW ")?; - serde_json::to_writer(&mut *w, self).map_err(Error::Serialization)?; - Ok(w.write_all(b"\r\n")?) + async fn issue(&self, w: &mut W) -> Result<(), Error> { + w.write_all(b"BATCH NEW ").await?; + let r = serde_json::to_vec(self).map_err(Error::Serialization)?; + w.write_all(&r).await?; + Ok(w.write_all(b"\r\n").await?) } } -// ---------------------------------------------- - -pub struct CommitBatch(String); - -impl From for CommitBatch { - fn from(value: String) -> Self { - CommitBatch(value) - } +macro_rules! batch_cmd { + ($structure:ident, $cmd:expr) => { + impl From for $structure { + fn from(value: String) -> Self { + $structure(value) + } + } + + #[async_trait::async_trait] + impl FaktoryCommand for $structure { + async fn issue(&self, w: &mut W) -> Result<(), Error> { + let c = format!("BATCH {} ", $cmd); + w.write_all(c.as_bytes()).await?; + w.write_all(self.0.as_bytes()).await?; + Ok(w.write_all(b"\r\n").await?) + } + } + }; } -impl FaktoryCommand for CommitBatch { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"BATCH COMMIT ")?; - w.write_all(self.0.as_bytes())?; - Ok(w.write_all(b"\r\n")?) - } -} - -// ---------------------------------------------- +pub struct CommitBatch(String); +batch_cmd!(CommitBatch, "COMMIT"); pub struct GetBatchStatus(String); - -impl From for GetBatchStatus { - fn from(value: String) -> Self { - GetBatchStatus(value) - } -} - -impl FaktoryCommand for GetBatchStatus { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"BATCH STATUS ")?; - w.write_all(self.0.as_bytes())?; - Ok(w.write_all(b"\r\n")?) - } -} - -// ---------------------------------------------- +batch_cmd!(GetBatchStatus, "STATUS"); pub struct OpenBatch(String); - -impl From for OpenBatch { - fn from(value: String) -> Self { - OpenBatch(value) - } -} - -impl FaktoryCommand for OpenBatch { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"BATCH OPEN ")?; - w.write_all(self.0.as_bytes())?; - Ok(w.write_all(b"\r\n")?) - } -} +batch_cmd!(OpenBatch, "OPEN"); diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index cd1134e1..7237c2b6 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -4,7 +4,7 @@ use crate::Client; use crate::{Error, Job, Producer}; use chrono::{DateTime, Utc}; use derive_builder::Builder; -use std::io::{Read, Write}; +use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; mod cmd; @@ -27,10 +27,11 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// /// Here is how you can create a simple batch: /// ```no_run +/// # tokio_test::block_on(async { /// # use faktory::Error; /// use faktory::{Producer, Job, ent::Batch}; /// -/// let mut prod = Producer::connect(None)?; +/// let mut prod = Producer::connect(None).await?; /// let job1 = Job::builder("job_type").build(); /// let job2 = Job::builder("job_type").build(); /// let job_cb = Job::builder("callback_job_type").build(); @@ -39,19 +40,21 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// .description("Batch description") /// .with_complete_callback(job_cb); /// -/// let mut batch = prod.start_batch(batch)?; -/// batch.add(job1)?; -/// batch.add(job2)?; -/// batch.commit()?; +/// let mut batch = prod.start_batch(batch).await?; +/// batch.add(job1).await?; +/// batch.add(job2).await?; +/// batch.commit().await?; /// /// # Ok::<(), Error>(()) +/// # }); /// ``` /// /// Nested batches are also supported: /// ```no_run +/// # tokio_test::block_on(async { /// # use faktory::{Producer, Job, Error}; /// # use faktory::ent::Batch; -/// # let mut prod = Producer::connect(None)?; +/// # let mut prod = Producer::connect(None).await?; /// let parent_job1 = Job::builder("job_type").build(); /// let parent_job2 = Job::builder("another_job_type").build(); /// let parent_cb = Job::builder("callback_job_type").build(); @@ -67,17 +70,18 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// .description("Child batch description") /// .with_success_callback(child_cb); /// -/// let mut parent = prod.start_batch(parent_batch)?; -/// parent.add(parent_job1)?; -/// parent.add(parent_job2)?; -/// let mut child = parent.start_batch(child_batch)?; -/// child.add(child_job1)?; -/// child.add(child_job2)?; +/// let mut parent = prod.start_batch(parent_batch).await?; +/// parent.add(parent_job1).await?; +/// parent.add(parent_job2).await?; +/// let mut child = parent.start_batch(child_batch).await?; +/// child.add(child_job1).await?; +/// child.add(child_job2).await?; /// -/// child.commit()?; -/// parent.commit()?; +/// child.commit().await?; +/// parent.commit().await?; /// /// # Ok::<(), Error>(()) +/// }); /// ``` /// /// In the example above, there is a single level nesting, but you can nest those batches as deep as you wish, @@ -89,20 +93,21 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// # use faktory::Error; /// # use faktory::{Producer, Job, Client}; /// # use faktory::ent::{Batch, CallbackState}; -/// let mut prod = Producer::connect(None)?; +/// # tokio_test::block_on(async { +/// let mut prod = Producer::connect(None).await?; /// let job = Job::builder("job_type").build(); /// let cb_job = Job::builder("callback_job_type").build(); /// let b = Batch::builder() /// .description("Batch description") /// .with_complete_callback(cb_job); /// -/// let mut b = prod.start_batch(b)?; +/// let mut b = prod.start_batch(b).await?; /// let bid = b.id().to_string(); -/// b.add(job)?; -/// b.commit()?; +/// b.add(job).await?; +/// b.commit().await?; /// -/// let mut t = Client::connect(None)?; -/// let s = t.get_batch_status(bid)?.unwrap(); +/// let mut t = Client::connect(None).await?; +/// let s = t.get_batch_status(bid).await?.unwrap(); /// assert_eq!(s.total, 1); /// assert_eq!(s.pending, 1); /// assert_eq!(s.description, Some("Batch description".into())); @@ -112,6 +117,7 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// _ => panic!("The jobs of this batch have not executed, so the callback job is expected to _not_ have fired"), /// } /// # Ok::<(), Error>(()) +/// }); /// ``` #[derive(Builder, Debug, Serialize)] #[builder( @@ -206,12 +212,12 @@ impl Clone for BatchBuilder { } /// Represents a newly started or re-opened batch of jobs. -pub struct BatchHandle<'a, S: Read + Write> { +pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { bid: String, prod: &'a mut Producer, } -impl<'a, S: Read + Write> BatchHandle<'a, S> { +impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { /// ID issued by the Faktory server to this batch. pub fn id(&self) -> &str { self.bid.as_ref() @@ -226,15 +232,15 @@ impl<'a, S: Read + Write> BatchHandle<'a, S> { /// Should the submitted job - for whatever reason - already have a `bid` key present in its custom hash, /// this value will be overwritten by the ID of the batch this job is being added to with the old value /// returned as `Some()`. - pub fn add(&mut self, mut job: Job) -> Result, Error> { + pub async fn add(&mut self, mut job: Job) -> Result, Error> { let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.prod.enqueue(job).map(|_| bid) + self.prod.enqueue(job).await.map(|_| bid) } /// Initiate a child batch of jobs. - pub fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { + pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { batch.parent_bid = Some(self.bid.clone()); - self.prod.start_batch(batch) + self.prod.start_batch(batch).await } /// Commit this batch. @@ -243,8 +249,8 @@ impl<'a, S: Read + Write> BatchHandle<'a, S> { /// Committing an empty batch will make the server queue the callback(s) right away. /// Once committed, the batch can still be re-opened with [open_batch](Producer::open_batch), /// and extra jobs can be added to it. - pub fn commit(self) -> Result<(), Error> { - self.prod.commit_batch(self.bid) + pub async fn commit(self) -> Result<(), Error> { + self.prod.commit_batch(self.bid).await } } @@ -326,11 +332,11 @@ impl<'a> BatchStatus { /// Open the batch for which this `BatchStatus` has been retrieved. /// /// See [`open_batch`](Producer::open_batch). - pub fn open( + pub async fn open( &self, prod: &'a mut Producer, ) -> Result>, Error> { - prod.open_batch(self.bid.clone()) + prod.open_batch(self.bid.clone()).await } } diff --git a/src/proto/mod.rs b/src/proto/mod.rs index f7b6f3ec..0d7fe1a7 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -2,24 +2,18 @@ use crate::{Consumer, Producer}; use crate::error::{self, Error}; -use bufstream::BufStream; -use libc::getpid; use std::io; -use std::io::prelude::*; -use std::net::TcpStream; -use url::Url; - -pub(crate) const EXPECTED_PROTOCOL_VERSION: usize = 2; +use tokio::io::BufStream; +use tokio::io::{AsyncBufReadExt, AsyncRead, AsyncWrite, AsyncWriteExt}; +use tokio::net::TcpStream as TokioStream; mod single; - -// commands that users can issue -pub use self::single::{ - Ack, Fail, Heartbeat, Info, Job, JobBuilder, Push, PushBulk, QueueAction, QueueControl, -}; +pub use single::{Ack, Fail, Info, Job, JobBuilder, Push, PushBulk, QueueAction, QueueControl}; +pub(crate) mod utils; #[cfg(feature = "ent")] pub use self::single::ent::{JobState, Progress, ProgressUpdate, ProgressUpdateBuilder, Track}; +use self::single::Heartbeat; #[cfg(feature = "ent")] mod batch; @@ -29,35 +23,7 @@ pub use batch::{ OpenBatch, }; -pub(crate) fn get_env_url() -> String { - use std::env; - let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); - env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) -} - -pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) -} - -pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - if url.scheme() != "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - .into()); - } - - if url.host_str().is_none() || url.host_str().unwrap().is_empty() { - return Err(error::Connect::MissingHostname.into()); - } - - Ok(url) -} - -pub(crate) fn parse_provided_or_from_env(url: Option<&str>) -> Result { - url_parse(url.unwrap_or(&get_env_url())) -} +pub(crate) const EXPECTED_PROTOCOL_VERSION: usize = 2; fn check_protocols_match(ver: usize) -> Result<(), Error> { if ver != EXPECTED_PROTOCOL_VERSION { @@ -70,18 +36,6 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { Ok(()) } -/// A stream that can be re-established after failing. -pub trait Reconnect: Sized { - /// Re-establish the stream. - fn reconnect(&self) -> io::Result; -} - -impl Reconnect for TcpStream { - fn reconnect(&self) -> io::Result { - TcpStream::connect(self.peer_addr().unwrap()) - } -} - #[derive(Clone)] pub(crate) struct ClientOptions { /// Hostname to advertise to server. @@ -96,7 +50,7 @@ pub(crate) struct ClientOptions { /// Defaults to a GUID. pub(crate) wid: Option, - /// Labels to advertise to server. + /// Labels to advertise to se/// A stream that can be re-established after failing.rver. /// Defaults to ["rust"]. pub(crate) labels: Vec, @@ -122,6 +76,33 @@ impl Default for ClientOptions { } } +/// A stream that can be re-established after failing. +#[async_trait::async_trait] +pub trait Reconnect: Sized { + /// Re-establish the stream. + async fn reconnect(&mut self) -> io::Result; +} + +#[async_trait::async_trait] +impl Reconnect for TokioStream { + async fn reconnect(&mut self) -> io::Result { + let addr = &self.peer_addr().expect("socket address"); + TokioStream::connect(addr).await + } +} + +#[async_trait::async_trait] +impl Reconnect for BufStream +where + S: AsyncRead + AsyncWrite + Reconnect + Send + Sync, +{ + async fn reconnect(&mut self) -> io::Result { + // let addr = &self.get_ref().peer_addr().expect("socket address"); + let stream = self.get_mut().reconnect().await?; + Ok(Self::new(stream)) + } +} + /// A Faktory connection that represents neither a [`Producer`] nor a [`Consumer`]. /// /// Useful for retrieving and updating information on a job's execution progress @@ -130,10 +111,11 @@ impl Default for ClientOptions { /// /// Fetching a job's execution progress: /// ```no_run +/// # tokio_test::block_on(async { /// use faktory::{Client, ent::JobState}; /// let job_id = String::from("W8qyVle9vXzUWQOf"); -/// let mut cl = Client::connect(None)?; -/// if let Some(progress) = cl.get_progress(job_id)? { +/// let mut cl = Client::connect(None).await?; +/// if let Some(progress) = cl.get_progress(job_id).await? { /// if let JobState::Success = progress.state { /// # /* /// ... @@ -141,39 +123,80 @@ impl Default for ClientOptions { /// } /// } /// # Ok::<(), faktory::Error>(()) +/// }); /// ``` /// /// Sending an update on a job's execution progress: /// /// ```no_run +/// # tokio_test::block_on(async { /// use faktory::{Client, ent::ProgressUpdateBuilder}; /// let jid = String::from("W8qyVle9vXzUWQOf"); -/// let mut cl = Client::connect(None)?; +/// let mut cl = Client::connect(None).await?; /// let progress = ProgressUpdateBuilder::new(&jid) /// .desc("Almost done...".to_owned()) /// .percent(99) /// .build(); -/// cl.set_progress(progress)?; +/// cl.set_progress(progress).await?; /// # Ok::<(), faktory::Error>(()) +/// }); ///```` /// /// Fetching a batch's status: /// /// ```no_run +/// # tokio_test::block_on(async { /// use faktory::Client; /// let bid = String::from("W8qyVle9vXzUWQOg"); -/// let mut cl = Client::connect(None)?; -/// if let Some(status) = cl.get_batch_status(bid)? { +/// let mut cl = Client::connect(None).await?; +/// if let Some(status) = cl.get_batch_status(bid).await? { /// println!("This batch created at {}", status.created_at); /// } /// # Ok::<(), faktory::Error>(()) +/// }); /// ``` -pub struct Client { - stream: BufStream, +pub struct Client { + stream: S, opts: ClientOptions, } -impl Client { +impl Client +where + S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send + Reconnect, +{ + pub(crate) async fn connect_again(&mut self) -> Result { + let s = self.stream.reconnect().await?; + Client::new(s, self.opts.clone()).await + } + + pub(crate) async fn reconnect(&mut self) -> Result<(), Error> { + self.stream = self.stream.reconnect().await?; + self.init().await + } +} + +impl Drop for Client +where + S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, +{ + fn drop(&mut self) { + tokio::task::block_in_place(|| { + tokio::runtime::Handle::current().block_on(async { + single::write_command(&mut self.stream, &single::End) + .await + .unwrap(); + }) + }); + } +} + +pub(crate) enum HeartbeatStatus { + Ok, + Terminate, + Quiet, +} + +impl Client> { /// Create new [`Client`] and connect to a Faktory server. /// /// If `url` is not given, will use the standard Faktory environment variables. Specifically, @@ -185,53 +208,20 @@ impl Client { /// ```text /// tcp://localhost:7419 /// ``` - pub fn connect(url: Option<&str>) -> Result, Error> { - let url = parse_provided_or_from_env(url)?; - let stream = TcpStream::connect(host_from_url(&url))?; - Self::connect_with(stream, url.password().map(|p| p.to_string())) + pub async fn connect(url: Option<&str>) -> Result>, Error> { + let url = utils::parse_provided_or_from_env(url)?; + let stream = TokioStream::connect(utils::host_from_url(&url)).await?; + let buffered = BufStream::new(stream); + Self::connect_with(buffered, url.password().map(|p| p.to_string())).await } } impl Client where - S: Read + Write + Reconnect, + S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, { - pub(crate) fn connect_again(&self) -> Result { - let s = self.stream.get_ref().reconnect()?; - Client::new(s, self.opts.clone()) - } - - pub(crate) fn reconnect(&mut self) -> Result<(), Error> { - let s = self.stream.get_ref().reconnect()?; - self.stream = BufStream::new(s); - self.init() - } -} - -impl Client { - pub(crate) fn new(stream: S, opts: ClientOptions) -> Result, Error> { - let mut c = Client { - stream: BufStream::new(stream), - opts, - }; - c.init()?; - Ok(c) - } - - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub fn connect_with(stream: S, pwd: Option) -> Result, Error> { - let opts = ClientOptions { - password: pwd, - ..Default::default() - }; - Client::new(stream, opts) - } -} - -impl Client { - fn init(&mut self) -> Result<(), Error> { - let hi = single::read_hi(&mut self.stream)?; - + async fn init(&mut self) -> Result<(), Error> { + let hi = single::read_hi(&mut self.stream).await?; check_protocols_match(hi.version)?; let mut hello = single::Hello::default(); @@ -245,8 +235,12 @@ impl Client { } } + // fill in any missing options, and remember them for re-connect + let mut hello = single::Hello::default(); + if self.opts.is_worker { // fill in any missing options, and remember them for re-connect + let hostname = self .opts .hostname @@ -254,10 +248,7 @@ impl Client { .or_else(|| hostname::get().ok()?.into_string().ok()) .unwrap_or_else(|| "local".to_string()); self.opts.hostname = Some(hostname); - let pid = self - .opts - .pid - .unwrap_or_else(|| unsafe { getpid() } as usize); + let pid = self.opts.pid.unwrap_or_else(|| std::process::id() as usize); self.opts.pid = Some(pid); let wid = self.opts.wid.clone().unwrap_or_else(single::gen_random_wid); self.opts.wid = Some(wid); @@ -268,62 +259,59 @@ impl Client { hello.labels = self.opts.labels.clone(); } - single::write_command_and_await_ok(&mut self.stream, &hello) - } -} - -impl Drop for Client { - fn drop(&mut self) { - single::write_command(&mut self.stream, &single::End).unwrap(); - } -} + if hi.salt.is_some() { + if let Some(ref pwd) = self.opts.password { + hello.set_password(&hi, pwd); + } else { + return Err(error::Connect::AuthenticationNeeded.into()); + } + } -#[cfg(feature = "ent")] -#[cfg_attr(docsrs, doc(cfg(feature = "ent")))] -impl Client { - /// Send information on a job's execution progress to Faktory. - pub fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { - let cmd = Track::Set(upd); - self.issue(&cmd)?.await_ok() + single::write_command_and_await_ok(&mut self.stream, &hello).await?; + Ok(()) } - /// Fetch information on a job's execution progress from Faktory. - pub fn get_progress(&mut self, jid: String) -> Result, Error> { - let cmd = Track::Get(jid); - self.issue(&cmd)?.read_json() + pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { + let mut c = Client { stream, opts }; + c.init().await?; + Ok(c) } - /// Fetch information on a batch of jobs execution progress. - pub fn get_batch_status(&mut self, bid: String) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd)?.read_json() + /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. + pub async fn connect_with(stream: S, pwd: Option) -> Result, Error> { + let opts = ClientOptions { + password: pwd, + ..Default::default() + }; + Client::new(stream, opts).await } -} -pub struct ReadToken<'a, S: Read + Write>(&'a mut Client); - -pub(crate) enum HeartbeatStatus { - Ok, - Terminate, - Quiet, -} - -impl Client { - pub(crate) fn issue( + pub(crate) async fn issue( &mut self, c: &FC, ) -> Result, Error> { - single::write_command(&mut self.stream, c)?; + single::write_command(&mut self.stream, c).await?; Ok(ReadToken(self)) } - pub(crate) fn heartbeat(&mut self) -> Result { + pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> + where + Q: AsRef + Sync, + { + self.issue(&single::Fetch::from(queues)) + .await? + .read_json() + .await + } + + pub(crate) async fn heartbeat(&mut self) -> Result { single::write_command( &mut self.stream, &Heartbeat::new(&**self.opts.wid.as_ref().unwrap()), - )?; + ) + .await?; - match single::read_json::<_, serde_json::Value>(&mut self.stream)? { + match single::read_json::<_, serde_json::Value>(&mut self.stream).await? { None => Ok(HeartbeatStatus::Ok), Some(s) => match s .as_object() @@ -340,35 +328,52 @@ impl Client { }, } } +} - pub(crate) fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef, - { - self.issue(&single::Fetch::from(queues))?.read_json() +#[cfg(feature = "ent")] +#[cfg_attr(docsrs, doc(cfg(feature = "ent")))] +impl Client { + /// Send information on a job's execution progress to Faktory. + pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { + let cmd = Track::Set(upd); + self.issue(&cmd).await?.read_ok().await + } + + /// Fetch information on a job's execution progress from Faktory. + pub async fn get_progress(&mut self, jid: String) -> Result, Error> { + let cmd = Track::Get(jid); + self.issue(&cmd).await?.read_json().await + } + + /// Fetch information on a batch of jobs execution progress. + pub async fn get_batch_status(&mut self, bid: String) -> Result, Error> { + let cmd = GetBatchStatus::from(bid); + self.issue(&cmd).await?.read_json().await } } -impl<'a, S: Read + Write> ReadToken<'a, S> { - pub(crate) fn await_ok(self) -> Result<(), Error> { - single::read_ok(&mut self.0.stream) +pub struct ReadToken<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send>(&'a mut Client); + +impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { + pub(crate) async fn read_ok(self) -> Result<(), Error> { + single::read_ok(&mut self.0.stream).await } - pub(crate) fn read_json(self) -> Result, Error> + pub(crate) async fn read_json(self) -> Result, Error> where T: serde::de::DeserializeOwned, { - single::read_json(&mut self.0.stream) + single::read_json(&mut self.0.stream).await } #[cfg(feature = "ent")] - pub(crate) fn read_bid(self) -> Result { - single::read_bid(&mut self.0.stream) + pub(crate) async fn read_bid(self) -> Result { + single::read_bid(&mut self.0.stream).await } #[cfg(feature = "ent")] - pub(crate) fn maybe_bid(self) -> Result, Error> { - let bid_read_res = single::read_bid(&mut self.0.stream); + pub(crate) async fn maybe_bid(self) -> Result, Error> { + let bid_read_res = single::read_bid(&mut self.0.stream).await; if bid_read_res.is_ok() { return Ok(Some(bid_read_res.unwrap())); } @@ -383,66 +388,3 @@ impl<'a, S: Read + Write> ReadToken<'a, S> { } } } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - // https://github.com/rust-lang/rust/pull/42219 - //#[allow_fail] - #[ignore] - fn it_works() { - Client::new( - TcpStream::connect("localhost:7419").unwrap(), - ClientOptions::default(), - ) - .unwrap(); - } - - #[test] - fn correct_env_parsing() { - use std::env; - - if env::var_os("FAKTORY_URL").is_some() { - eprintln!("skipping test to avoid messing with user-set FAKTORY_URL"); - return; - } - - assert_eq!(get_env_url(), "tcp://localhost:7419"); - - env::set_var("FAKTORY_URL", "tcp://example.com:7500"); - assert_eq!(get_env_url(), "tcp://example.com:7500"); - - env::set_var("FAKTORY_PROVIDER", "URL"); - env::set_var("URL", "tcp://example.com:7501"); - assert_eq!(get_env_url(), "tcp://example.com:7501"); - } - - #[test] - fn url_port_default() { - use url::Url; - let url = Url::parse("tcp://example.com").unwrap(); - assert_eq!(host_from_url(&url), "example.com:7419"); - } - - #[test] - fn url_requires_tcp() { - url_parse("foobar").unwrap_err(); - } - - #[test] - fn url_requires_host() { - url_parse("tcp://:7419").unwrap_err(); - } - - #[test] - fn url_doesnt_require_port() { - url_parse("tcp://example.com").unwrap(); - } - - #[test] - fn url_can_take_password_and_port() { - url_parse("tcp://:foobar@example.com:7419").unwrap(); - } -} diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index 800d3dd2..ff531e05 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -1,36 +1,54 @@ use crate::{error::Error, Job}; -use std::io::prelude::*; +use std::error::Error as StdError; +use tokio::io::AsyncWriteExt; +#[async_trait::async_trait] pub trait FaktoryCommand { - fn issue(&self, w: &mut W) -> Result<(), Error>; + async fn issue(&self, w: &mut W) -> Result<(), Error>; +} + +macro_rules! self_to_cmd { + ($struct:ident, $cmd:expr) => { + #[async_trait::async_trait] + impl FaktoryCommand for $struct { + async fn issue(&self, w: &mut W) -> Result<(), Error> { + let c = format!("{} ", $cmd); + w.write_all(c.as_bytes()).await?; + let r = serde_json::to_vec(self).map_err(Error::Serialization)?; + w.write_all(&r).await?; + Ok(w.write_all(b"\r\n").await?) + } + } + }; } /// Write queues as part of a command. They are written with a leading space /// followed by space separated queue names. -fn write_queues(w: &mut W, queues: &[S]) -> Result<(), Error> +async fn write_queues(w: &mut W, queues: &[S]) -> Result<(), Error> where - W: Write, + W: AsyncWriteExt + Unpin + Send, S: AsRef, { for q in queues { - w.write_all(b" ")?; - w.write_all(q.as_ref().as_bytes())?; + w.write_all(b" ").await?; + w.write_all(q.as_ref().as_bytes()).await?; } Ok(()) } -// ---------------------------------------------- +// -------------------- INFO ---------------------- pub struct Info; +#[async_trait::async_trait] impl FaktoryCommand for Info { - fn issue(&self, w: &mut W) -> Result<(), Error> { - Ok(w.write_all(b"INFO\r\n")?) + async fn issue(&self, w: &mut W) -> Result<(), Error> { + Ok(w.write_all(b"INFO\r\n").await?) } } -// ---------------------------------------------- +// -------------------- ACK ---------------------- #[derive(Serialize)] pub struct Ack { @@ -38,14 +56,6 @@ pub struct Ack { job_id: String, } -impl FaktoryCommand for Ack { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"ACK ")?; - serde_json::to_writer(&mut *w, self).map_err(Error::Serialization)?; - Ok(w.write_all(b"\r\n")?) - } -} - impl Ack { pub fn new>(job_id: S) -> Ack { Ack { @@ -54,28 +64,24 @@ impl Ack { } } -// ---------------------------------------------- +self_to_cmd!(Ack, "ACK"); + +// -------------------- BEAT ------------------ #[derive(Serialize)] pub struct Heartbeat { wid: String, } -impl FaktoryCommand for Heartbeat { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"BEAT ")?; - serde_json::to_writer(&mut *w, self).map_err(Error::Serialization)?; - Ok(w.write_all(b"\r\n")?) - } -} - impl Heartbeat { pub fn new>(wid: S) -> Heartbeat { Heartbeat { wid: wid.into() } } } -// ---------------------------------------------- +self_to_cmd!(Heartbeat, "BEAT"); + +// -------------------- FAIL --------------------- #[derive(Serialize, Clone)] pub struct Fail { @@ -88,14 +94,6 @@ pub struct Fail { backtrace: Vec, } -impl FaktoryCommand for Fail { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"FAIL ")?; - serde_json::to_writer(&mut *w, self).map_err(Error::Serialization)?; - Ok(w.write_all(b"\r\n")?) - } -} - impl Fail { pub fn new, S2: Into, S3: Into>( job_id: S1, @@ -110,43 +108,62 @@ impl Fail { } } + // "unknown" is the errtype used by the go library too + pub fn generic, S2: Into>(job_id: S1, message: S2) -> Self { + Fail::new(job_id, "unknown", message) + } + pub fn set_backtrace(&mut self, lines: Vec) { self.backtrace = lines; } + + pub fn generic_with_backtrace(jid: String, e: E) -> Self + where + E: StdError, + { + let mut f = Fail::generic(jid, format!("{}", e)); + let mut root = e.source(); + let mut lines = Vec::new(); + while let Some(r) = root.take() { + lines.push(format!("{}", r)); + root = r.source(); + } + f.set_backtrace(lines); + f + } } -// ---------------------------------------------- +self_to_cmd!(Fail, "FAIL"); + +// ---------------------- END -------------------- pub struct End; +#[async_trait::async_trait] impl FaktoryCommand for End { - fn issue(&self, w: &mut W) -> Result<(), Error> { - Ok(w.write_all(b"END\r\n")?) + async fn issue(&self, w: &mut W) -> Result<(), Error> { + Ok(w.write_all(b"END\r\n").await?) } } -// ---------------------------------------------- +// --------------------- FETCH -------------------- pub struct Fetch<'a, S> where S: AsRef, { - queues: &'a [S], + pub(crate) queues: &'a [S], } -impl<'a, S> FaktoryCommand for Fetch<'a, S> +#[async_trait::async_trait] +impl<'a, Q> FaktoryCommand for Fetch<'a, Q> where - S: AsRef, + Q: AsRef + Sync, { - fn issue(&self, w: &mut W) -> Result<(), Error> { - if self.queues.is_empty() { - w.write_all(b"FETCH\r\n")?; - } else { - w.write_all(b"FETCH")?; - write_queues::(w, self.queues)?; - w.write_all(b"\r\n")?; - } - Ok(()) + async fn issue(&self, w: &mut W) -> Result<(), Error> { + w.write_all(b"FETCH").await?; + write_queues(w, self.queues).await?; + Ok(w.write_all(b"\r\n").await?) } } @@ -159,7 +176,7 @@ where } } -// ---------------------------------------------- +// --------------------- HELLO -------------------- #[derive(Serialize)] pub struct Hello { @@ -208,15 +225,9 @@ impl Hello { } } -impl FaktoryCommand for Hello { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"HELLO ")?; - serde_json::to_writer(&mut *w, self).map_err(Error::Serialization)?; - Ok(w.write_all(b"\r\n")?) - } -} +self_to_cmd!(Hello, "HELLO"); -// ---------------------------------------------- +// --------------------- PUSH -------------------- pub struct Push(Job); @@ -234,15 +245,17 @@ impl From for Push { } } +#[async_trait::async_trait] impl FaktoryCommand for Push { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"PUSH ")?; - serde_json::to_writer(&mut *w, &**self).map_err(Error::Serialization)?; - Ok(w.write_all(b"\r\n")?) + async fn issue(&self, w: &mut W) -> Result<(), Error> { + w.write_all(b"PUSH ").await?; + let r = serde_json::to_vec(&**self).map_err(Error::Serialization)?; + w.write_all(&r).await?; + Ok(w.write_all(b"\r\n").await?) } } -// ---------------------------------------------- +// ---------------------- QUEUE ------------------- pub struct PushBulk(Vec); @@ -252,11 +265,13 @@ impl From> for PushBulk { } } +#[async_trait::async_trait] impl FaktoryCommand for PushBulk { - fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"PUSHB ")?; - serde_json::to_writer(&mut *w, &self.0).map_err(Error::Serialization)?; - Ok(w.write_all(b"\r\n")?) + async fn issue(&self, w: &mut W) -> Result<(), Error> { + w.write_all(b"PUSHB ").await?; + let r = serde_json::to_vec(&self.0).map_err(Error::Serialization)?; + w.write_all(&r).await?; + Ok(w.write_all(b"\r\n").await?) } } @@ -275,19 +290,21 @@ where pub queues: &'a [S], } -impl> FaktoryCommand for QueueControl<'_, S> { - fn issue(&self, w: &mut W) -> Result<(), Error> { +#[async_trait::async_trait] +impl FaktoryCommand for QueueControl<'_, Q> +where + Q: AsRef + Sync, +{ + async fn issue(&self, w: &mut W) -> Result<(), Error> { let command = match self.action { QueueAction::Pause => b"QUEUE PAUSE".as_ref(), QueueAction::Resume => b"QUEUE RESUME".as_ref(), }; - - w.write_all(command)?; - write_queues::(w, self.queues)?; - Ok(w.write_all(b"\r\n")?) + w.write_all(command).await?; + write_queues(w, self.queues).await?; + Ok(w.write_all(b"\r\n").await?) } } - impl<'a, S: AsRef> QueueControl<'a, S> { pub fn new(action: QueueAction, queues: &'a [S]) -> Self { Self { action, queues } diff --git a/src/proto/single/ent/cmd.rs b/src/proto/single/ent/cmd.rs index 50d06b81..b522bb89 100644 --- a/src/proto/single/ent/cmd.rs +++ b/src/proto/single/ent/cmd.rs @@ -1,7 +1,7 @@ use super::ProgressUpdate; use crate::error::Error; use crate::proto::single::FaktoryCommand; -use std::{fmt::Debug, io::Write}; +use tokio::io::AsyncWriteExt; #[derive(Debug, Clone)] pub enum Track { @@ -9,18 +9,20 @@ pub enum Track { Get(String), } +#[async_trait::async_trait] impl FaktoryCommand for Track { - fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { match self { Self::Set(upd) => { - w.write_all(b"TRACK SET ")?; - serde_json::to_writer(&mut *w, upd).map_err(Error::Serialization)?; - Ok(w.write_all(b"\r\n")?) + w.write_all(b"TRACK SET ").await?; + let r = serde_json::to_vec(upd).map_err(Error::Serialization)?; + w.write_all(&r).await?; + Ok(w.write_all(b"\r\n").await?) } Self::Get(jid) => { - w.write_all(b"TRACK GET ")?; - w.write_all(jid.as_bytes())?; - Ok(w.write_all(b"\r\n")?) + w.write_all(b"TRACK GET ").await?; + w.write_all(jid.as_bytes()).await?; + Ok(w.write_all(b"\r\n").await?) } } } diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index b2607347..6fdc3a86 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -1,7 +1,8 @@ +use crate::Error; use chrono::{DateTime, Utc}; use derive_builder::Builder; use std::collections::HashMap; -use std::io::prelude::*; +use tokio::io::{AsyncBufRead, AsyncWriteExt}; mod cmd; mod resp; @@ -13,7 +14,6 @@ pub mod ent; pub use self::cmd::*; pub use self::resp::*; -use crate::error::Error; pub(crate) use self::utils::gen_random_wid; @@ -255,18 +255,23 @@ impl Job { &self.failure } } - -pub fn write_command(w: &mut W, command: &C) -> Result<(), Error> { - command.issue::(w)?; - Ok(w.flush()?) +pub async fn write_command( + w: &mut W, + command: &C, +) -> Result<(), Error> { + command.issue::(w).await?; + Ok(w.flush().await?) } -pub fn write_command_and_await_ok( - x: &mut X, +pub async fn write_command_and_await_ok< + S: AsyncBufRead + AsyncWriteExt + Unpin + Send, + C: FaktoryCommand, +>( + stream: &mut S, command: &C, ) -> Result<(), Error> { - write_command(x, command)?; - read_ok(x) + write_command(stream, command).await?; + read_ok(stream).await } #[cfg(test)] diff --git a/src/proto/single/resp.rs b/src/proto/single/resp.rs index 9a1d3e19..095c5511 100644 --- a/src/proto/single/resp.rs +++ b/src/proto/single/resp.rs @@ -1,7 +1,7 @@ use crate::error::{self, Error}; -use std::io::prelude::*; +use tokio::io::{AsyncBufReadExt, AsyncReadExt}; -fn bad(expected: &'static str, got: &RawResponse) -> error::Protocol { +pub fn bad(expected: &'static str, got: &RawResponse) -> error::Protocol { let stringy = match *got { RawResponse::String(ref s) => Some(&**s), RawResponse::Blob(ref b) => { @@ -28,8 +28,10 @@ fn bad(expected: &'static str, got: &RawResponse) -> error::Protocol { // ---------------------------------------------- -pub fn read_json(r: R) -> Result, Error> { - let rr = read(r)?; +pub async fn read_json( + r: R, +) -> Result, Error> { + let rr = read(r).await?; match rr { RawResponse::String(ref s) if s == "OK" => { return Ok(None); @@ -60,8 +62,8 @@ pub fn read_json(r: R) -> Result(r: R) -> Result { - match read(r)? { +pub async fn read_bid(r: R) -> Result { + match read(r).await? { RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { expected: "non-empty blob representation of batch id", received: "empty blob".into(), @@ -89,21 +91,20 @@ pub struct Hi { pub salt: Option, } -pub fn read_hi(r: R) -> Result { - let rr = read(r)?; +pub async fn read_hi(r: R) -> Result { + let rr = read(r).await?; if let RawResponse::String(ref s) = rr { if let Some(s) = s.strip_prefix("HI ") { return serde_json::from_str(s).map_err(Error::Serialization); } } - Err(bad("server hi", &rr).into()) } // ---------------------------------------------- -pub fn read_ok(r: R) -> Result<(), Error> { - let rr = read(r)?; +pub async fn read_ok(r: R) -> Result<(), Error> { + let rr = read(r).await?; if let RawResponse::String(ref s) = rr { if s == "OK" { return Ok(()); @@ -120,22 +121,25 @@ pub fn read_ok(r: R) -> Result<(), Error> { // ---------------------------------------------- #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] -enum RawResponse { +pub enum RawResponse { String(String), Blob(Vec), Number(isize), Null, } -fn read(mut r: R) -> Result { +async fn read(mut r: R) -> Result +where + R: AsyncReadExt + AsyncBufReadExt + Unpin, +{ let mut cmdbuf = [0u8; 1]; - r.read_exact(&mut cmdbuf)?; + r.read_exact(&mut cmdbuf).await?; match cmdbuf[0] { b'+' => { // Simple String // https://redis.io/topics/protocol#resp-simple-strings let mut s = String::new(); - r.read_line(&mut s)?; + r.read_line(&mut s).await?; // remove newlines let l = s.len() - 2; @@ -147,7 +151,7 @@ fn read(mut r: R) -> Result { // Error // https://redis.io/topics/protocol#resp-errors let mut s = String::new(); - r.read_line(&mut s)?; + r.read_line(&mut s).await?; // remove newlines let l = s.len() - 2; @@ -159,7 +163,7 @@ fn read(mut r: R) -> Result { // Integer // https://redis.io/topics/protocol#resp-integers let mut s = String::with_capacity(32); - r.read_line(&mut s)?; + r.read_line(&mut s).await?; // remove newlines let l = s.len() - 2; @@ -179,7 +183,7 @@ fn read(mut r: R) -> Result { // Bulk String // https://redis.io/topics/protocol#resp-bulk-strings let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes)?; + r.read_until(b'\n', &mut bytes).await?; let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { error::Protocol::BadResponse { typed_as: "bulk string", @@ -201,8 +205,8 @@ fn read(mut r: R) -> Result { } else { let size = size as usize; let mut bytes = vec![0; size]; - r.read_exact(&mut bytes[..])?; - r.read_exact(&mut [0u8; 2])?; + r.read_exact(&mut bytes[..]).await?; + r.read_exact(&mut [0u8; 2]).await?; Ok(RawResponse::Blob(bytes)) } } @@ -248,32 +252,34 @@ impl From> for RawResponse { #[cfg(test)] mod test { use super::{read, RawResponse}; + use crate::error::{self, Error}; use serde_json::{self, Map, Value}; - use std::io::{self, Cursor}; + use std::io::Cursor; + use tokio::io::AsyncBufReadExt; - fn read_json(c: C) -> Result, Error> { - super::read_json(c) + async fn read_json(c: C) -> Result, Error> { + super::read_json(c).await } - #[test] - fn it_parses_simple_strings() { + #[tokio::test] + async fn it_parses_simple_strings() { let c = Cursor::new(b"+OK\r\n"); - assert_eq!(read(c).unwrap(), RawResponse::from("OK")); + assert_eq!(read(c).await.unwrap(), RawResponse::from("OK")); } - #[test] - fn it_parses_numbers() { + #[tokio::test] + async fn it_parses_numbers() { let c = Cursor::new(b":1024\r\n"); - assert_eq!(read(c).unwrap(), RawResponse::from(1024)); + assert_eq!(read(c).await.unwrap(), RawResponse::from(1024)); } - #[test] - fn it_errors_on_bad_numbers() { + #[tokio::test] + async fn it_errors_on_bad_numbers() { let c = Cursor::new(b":x\r\n"); if let Error::Protocol(error::Protocol::BadResponse { typed_as, error, .. - }) = read(c).unwrap_err() + }) = read(c).await.unwrap_err() { assert_eq!(typed_as, "integer"); assert_eq!(error, "invalid integer value"); @@ -282,35 +288,35 @@ mod test { } } - #[test] - fn it_parses_errors() { + #[tokio::test] + async fn it_parses_errors() { let c = Cursor::new(b"-ERR foo\r\n"); - if let Error::Protocol(error::Protocol::Internal { ref msg }) = read(c).unwrap_err() { + if let Error::Protocol(error::Protocol::Internal { ref msg }) = read(c).await.unwrap_err() { assert_eq!(msg, "foo"); } else { unreachable!(); } } - #[test] + #[tokio::test] #[should_panic] - fn it_cant_do_arrays() { + async fn it_cant_do_arrays() { let c = Cursor::new(b"*\r\n"); - read(c).unwrap_err(); + read(c).await.unwrap_err(); } - #[test] - fn it_parses_nills() { + #[tokio::test] + async fn it_parses_nills() { let c = Cursor::new(b"$-1\r\n"); - assert_eq!(read(c).unwrap(), RawResponse::Null); + assert_eq!(read(c).await.unwrap(), RawResponse::Null); } - #[test] - fn it_errors_on_bad_sizes() { + #[tokio::test] + async fn it_errors_on_bad_sizes() { let c = Cursor::new(b"$x\r\n\r\n"); if let Error::Protocol(error::Protocol::BadResponse { typed_as, error, .. - }) = read(c).unwrap_err() + }) = read(c).await.unwrap_err() { assert_eq!(typed_as, "bulk string"); assert_eq!(error, "server bulk response size prefix is not an integer"); @@ -319,88 +325,88 @@ mod test { } } - #[test] - fn it_parses_empty_bulk() { + #[tokio::test] + async fn it_parses_empty_bulk() { let c = Cursor::new(b"$0\r\n\r\n"); - assert_eq!(read(c).unwrap(), RawResponse::from(vec![])); + assert_eq!(read(c).await.unwrap(), RawResponse::from(vec![])); } - #[test] - fn it_parses_non_empty_bulk() { + #[tokio::test] + async fn it_parses_non_empty_bulk() { let c = Cursor::new(b"$11\r\nHELLO WORLD\r\n"); assert_eq!( - read(c).unwrap(), + read(c).await.unwrap(), RawResponse::from(Vec::from(&b"HELLO WORLD"[..])) ); } - #[test] - fn it_decodes_json_ok_string() { + #[tokio::test] + async fn it_decodes_json_ok_string() { let c = Cursor::new(b"+OK\r\n"); - assert_eq!(read_json(c).unwrap(), None); + assert_eq!(read_json(c).await.unwrap(), None); } - #[test] - fn it_decodes_json_ok_blob() { + #[tokio::test] + async fn it_decodes_json_ok_blob() { let c = Cursor::new(b"$2\r\nOK\r\n"); - assert_eq!(read_json(c).unwrap(), None); + assert_eq!(read_json(c).await.unwrap(), None); } - #[test] - fn it_decodes_json_nill() { + #[tokio::test] + async fn it_decodes_json_nill() { let c = Cursor::new(b"$-1\r\n"); - assert_eq!(read_json(c).unwrap(), None); + assert_eq!(read_json(c).await.unwrap(), None); } - #[test] - fn it_decodes_json_empty() { + #[tokio::test] + async fn it_decodes_json_empty() { let c = Cursor::new(b"$0\r\n\r\n"); - assert_eq!(read_json(c).unwrap(), None); + assert_eq!(read_json(c).await.unwrap(), None); } - #[test] - fn it_decodes_string_json() { + #[tokio::test] + async fn it_decodes_string_json() { let c = Cursor::new(b"+{\"hello\":1}\r\n"); let mut m = Map::new(); m.insert("hello".to_string(), Value::from(1)); - assert_eq!(read_json(c).unwrap(), Some(Value::Object(m))); + assert_eq!(read_json(c).await.unwrap(), Some(Value::Object(m))); } - #[test] - fn it_decodes_blob_json() { + #[tokio::test] + async fn it_decodes_blob_json() { let c = Cursor::new(b"$11\r\n{\"hello\":1}\r\n"); let mut m = Map::new(); m.insert("hello".to_string(), Value::from(1)); - assert_eq!(read_json(c).unwrap(), Some(Value::Object(m))); + assert_eq!(read_json(c).await.unwrap(), Some(Value::Object(m))); } - #[test] - fn it_errors_on_bad_json_blob() { + #[tokio::test] + async fn it_errors_on_bad_json_blob() { let c = Cursor::new(b"$9\r\n{\"hello\"}\r\n"); - if let Error::Serialization(err) = read_json(c).unwrap_err() { + if let Error::Serialization(err) = read_json(c).await.unwrap_err() { let _: serde_json::Error = err; } else { unreachable!(); } } - #[test] - fn it_errors_on_bad_json_string() { + #[tokio::test] + async fn it_errors_on_bad_json_string() { let c = Cursor::new(b"+{\"hello\"}\r\n"); - if let Error::Serialization(err) = read_json(c).unwrap_err() { + if let Error::Serialization(err) = read_json(c).await.unwrap_err() { let _: serde_json::Error = err; } else { unreachable!(); } } - #[test] - fn json_error_on_number() { + #[tokio::test] + async fn json_error_on_number() { let c = Cursor::new(b":9\r\n"); if let Error::Protocol(error::Protocol::BadType { expected, ref received, - }) = read_json(c).unwrap_err() + }) = read_json(c).await.unwrap_err() { assert_eq!(expected, "json"); assert_eq!(received, "Number(9)"); @@ -409,12 +415,12 @@ mod test { } } - #[test] - fn it_errors_on_unknown_resp_type() { + #[tokio::test] + async fn it_errors_on_unknown_resp_type() { let c = Cursor::new(b"^\r\n"); if let Error::Protocol(error::Protocol::BadResponse { typed_as, error, .. - }) = read_json(c).unwrap_err() + }) = read_json(c).await.unwrap_err() { assert_eq!(typed_as, "unknown"); assert_eq!(error, "invalid response type prefix"); diff --git a/src/proto/utils.rs b/src/proto/utils.rs new file mode 100644 index 00000000..f2ac84db --- /dev/null +++ b/src/proto/utils.rs @@ -0,0 +1,83 @@ +use crate::error::{self, Error}; +use url::Url; + +pub(crate) fn get_env_url() -> String { + use std::env; + let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); + env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) +} + +pub(crate) fn host_from_url(url: &Url) -> String { + format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) +} + +pub(crate) fn url_parse(url: &str) -> Result { + let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; + if url.scheme() != "tcp" { + return Err(error::Connect::BadScheme { + scheme: url.scheme().to_string(), + } + .into()); + } + + if url.host_str().is_none() || url.host_str().unwrap().is_empty() { + return Err(error::Connect::MissingHostname.into()); + } + + Ok(url) +} + +pub(crate) fn parse_provided_or_from_env(url: Option<&str>) -> Result { + url_parse(url.unwrap_or(&get_env_url())) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn correct_env_parsing() { + use std::env; + + if env::var_os("FAKTORY_URL").is_some() { + eprintln!("skipping test to avoid messing with user-set FAKTORY_URL"); + return; + } + + assert_eq!(get_env_url(), "tcp://localhost:7419"); + + env::set_var("FAKTORY_URL", "tcp://example.com:7500"); + assert_eq!(get_env_url(), "tcp://example.com:7500"); + + env::set_var("FAKTORY_PROVIDER", "URL"); + env::set_var("URL", "tcp://example.com:7501"); + assert_eq!(get_env_url(), "tcp://example.com:7501"); + } + + #[test] + fn url_port_default() { + use url::Url; + let url = Url::parse("tcp://example.com").unwrap(); + assert_eq!(host_from_url(&url), "example.com:7419"); + } + + #[test] + fn url_requires_tcp() { + url_parse("foobar").unwrap_err(); + } + + #[test] + fn url_requires_host() { + url_parse("tcp://:7419").unwrap_err(); + } + + #[test] + fn url_doesnt_require_port() { + url_parse("tcp://example.com").unwrap(); + } + + #[test] + fn url_can_take_password_and_port() { + url_parse("tcp://:foobar@example.com:7419").unwrap(); + } +} diff --git a/src/tls.rs b/src/tls.rs index f9db6ca4..30576140 100644 --- a/src/tls.rs +++ b/src/tls.rs @@ -1,12 +1,15 @@ -use crate::proto::{self, Reconnect}; -use crate::Error; -use native_tls::TlsConnector; -use native_tls::TlsStream as NativeTlsStream; +use crate::{proto::utils, Error, Reconnect}; +use std::fmt::Debug; use std::io; -use std::io::prelude::*; -use std::net::TcpStream; +use std::ops::{Deref, DerefMut}; +use std::sync::Arc; +use tokio::io::{AsyncRead, AsyncWrite}; +use tokio::net::TcpStream as TokioTcpStream; +use tokio_rustls::client::TlsStream as UnderlyingTlsStream; +use tokio_rustls::rustls::{ClientConfig, RootCertStore}; +use tokio_rustls::TlsConnector; -/// A reconnectable stream encrypted with TLS. +/// A reconnectable asynchronous stream encrypted with TLS. /// /// This can be used as an argument to `Consumer::connect_with` and `Producer::connect_with` to /// connect to a TLS-secured Faktory server. @@ -14,19 +17,23 @@ use std::net::TcpStream; /// # Examples /// /// ```no_run +/// # tokio_test::block_on(async { /// use faktory::{Producer, TlsStream}; -/// let tls = TlsStream::connect(None).unwrap(); -/// let p = Producer::connect_with(tls, None).unwrap(); +/// let tls = TlsStream::connect(None).await.unwrap(); +/// let p = Producer::connect_with(tls, None).await.unwrap(); /// # drop(p); +/// # }); /// ``` /// +#[pin_project::pin_project] pub struct TlsStream { connector: TlsConnector, - hostname: String, - stream: NativeTlsStream, + hostname: &'static str, + #[pin] + stream: UnderlyingTlsStream, } -impl TlsStream { +impl TlsStream { /// Create a new TLS connection over TCP. /// /// If `url` is not given, will use the standard Faktory environment variables. Specifically, @@ -40,88 +47,132 @@ impl TlsStream { /// ``` /// /// If `url` is given, but does not specify a port, it defaults to 7419. - pub fn connect(url: Option<&str>) -> Result { - TlsStream::with_connector( - TlsConnector::builder().build().map_err(Error::TlsStream)?, - url, - ) + /// + /// Internally creates a `ClientConfig` with an empty root certificates store and no client + /// authentication. Use [`with_client_config`](TlsStream::with_client_config) + /// or [`with_connector`](TlsStream::with_connector) for customized + /// `ClientConfig` and `TlsConnector` accordingly. + pub async fn connect(url: Option<&str>) -> Result { + let conf = ClientConfig::builder() + .with_root_certificates(RootCertStore::empty()) + .with_no_client_auth(); + let con = TlsConnector::from(Arc::new(conf)); + TlsStream::with_connector(con, url).await + } + + /// Create a new asynchronous TLS connection over TCP using a non-default TLS configuration. + /// + /// See `connect` for details about the `url` parameter. + pub async fn with_client_config(conf: ClientConfig, url: Option<&str>) -> Result { + let con = TlsConnector::from(Arc::new(conf)); + TlsStream::with_connector(con, url).await } - /// Create a new TLS connection over TCP using a non-default TLS configuration. + /// Create a new asynchronous TLS connection over TCP using a connector with a non-default TLS configuration. /// /// See `connect` for details about the `url` parameter. - pub fn with_connector(tls: TlsConnector, url: Option<&str>) -> Result { + pub async fn with_connector(connector: TlsConnector, url: Option<&str>) -> Result { let url = match url { - Some(url) => proto::url_parse(url), - None => proto::url_parse(&proto::get_env_url()), + Some(url) => utils::url_parse(url), + None => utils::url_parse(&utils::get_env_url()), }?; - let stream = TcpStream::connect(proto::host_from_url(&url))?; - Ok(TlsStream::new(stream, tls, url.host_str().unwrap())?) + let hostname = utils::host_from_url(&url); + let tcp_stream = TokioTcpStream::connect(&hostname).await?; + let hostname: &'static str = url.host_str().unwrap().to_string().leak(); + Ok(TlsStream::new(tcp_stream, connector, hostname).await?) } } -use std::fmt::Debug; impl TlsStream where - S: Read + Write + Reconnect + Send + Sync + Debug + 'static, + S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static, { - /// Create a new TLS connection on an existing stream. - pub fn default(stream: S, hostname: &str) -> io::Result { - Self::new(stream, TlsConnector::builder().build().unwrap(), hostname) + /// Create a new asynchronous TLS connection on an existing stream. + /// + /// Internally creates a `ClientConfig` with an empty root certificates store and no client + /// authentication. Use [`new`](TlsStream::new) for a customized `TlsConnector`. + pub async fn default(stream: S, hostname: &'static str) -> io::Result { + let conf = ClientConfig::builder() + .with_root_certificates(RootCertStore::empty()) + .with_no_client_auth(); + + Self::new(stream, TlsConnector::from(Arc::new(conf)), hostname).await } - /// Create a new TLS connection on an existing stream with a non-default TLS configuration. - pub fn new(stream: S, tls: TlsConnector, hostname: &str) -> io::Result { - let stream = tls - .connect(hostname, stream) + /// Create a new asynchronous TLS connection on an existing stream with a non-default TLS configuration. + pub async fn new( + stream: S, + connector: TlsConnector, + hostname: &'static str, + ) -> io::Result { + // let hostname: &'static str = hostname.to_string().leak(); + let domain = hostname.try_into().expect("a valid DNS name or IP address"); + let tls_stream = connector + .connect(domain, stream) + .await .map_err(|e| io::Error::new(io::ErrorKind::ConnectionAborted, e))?; - Ok(TlsStream { - connector: tls, - hostname: hostname.to_string(), - stream, + connector, + hostname, + stream: tls_stream, }) } } +#[async_trait::async_trait] impl Reconnect for TlsStream where - S: Read + Write + Reconnect + Send + Sync + Debug + 'static, + S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static + Sync, { - fn reconnect(&self) -> io::Result { - Self::new( - self.stream.get_ref().reconnect()?, - self.connector.clone(), - &self.hostname, - ) + async fn reconnect(&mut self) -> io::Result { + let stream = self.stream.get_mut().0.reconnect().await?; + Self::new(stream, self.connector.clone(), &self.hostname).await } } -use std::ops::{Deref, DerefMut}; impl Deref for TlsStream { - type Target = NativeTlsStream; + type Target = UnderlyingTlsStream; fn deref(&self) -> &Self::Target { &self.stream } } + impl DerefMut for TlsStream { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.stream } } -impl Read for TlsStream { - fn read(&mut self, buf: &mut [u8]) -> io::Result { - self.stream.read(buf) +impl AsyncRead for TlsStream { + fn poll_read( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + buf: &mut tokio::io::ReadBuf<'_>, + ) -> std::task::Poll> { + self.project().stream.poll_read(cx, buf) } } -impl Write for TlsStream { - fn write(&mut self, buf: &[u8]) -> io::Result { - self.stream.write(buf) +impl AsyncWrite for TlsStream { + fn poll_write( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + buf: &[u8], + ) -> std::task::Poll> { + self.project().stream.poll_write(cx, buf) + } + + fn poll_flush( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> std::task::Poll> { + self.project().stream.poll_flush(cx) } - fn flush(&mut self) -> io::Result<()> { - self.stream.flush() + fn poll_shutdown( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> std::task::Poll> { + self.project().stream.poll_shutdown(cx) } } diff --git a/tests/consumer.rs b/tests/consumer.rs index ee7c4aea..3505dcac 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -1,25 +1,22 @@ extern crate faktory; -extern crate mockstream; extern crate serde_json; extern crate url; mod mock; use faktory::*; -use std::io; -use std::thread; -use std::time::Duration; +use std::{io, time::Duration}; +use tokio::{spawn, time::sleep}; -#[test] -fn hello() { +#[tokio::test(flavor = "multi_thread")] +async fn hello() { let mut s = mock::Stream::default(); - - let mut c = ConsumerBuilder::default(); + let mut c: ConsumerBuilder = ConsumerBuilder::default(); c.hostname("host".to_string()) .wid("wid".to_string()) .labels(vec!["foo".to_string(), "bar".to_string()]); - c.register("never_called", |_| -> io::Result<()> { unreachable!() }); - let c = c.connect_with(s.clone(), None).unwrap(); + c.register("never_called", |_| Box::pin(async move { unreachable!() })); + let c = c.connect_with(s.clone(), None).await.unwrap(); let written = s.pop_bytes_written(0); assert!(written.starts_with(b"HELLO {")); let written: serde_json::Value = serde_json::from_slice(&written[b"HELLO ".len()..]).unwrap(); @@ -39,14 +36,15 @@ fn hello() { assert_eq!(written, b"END\r\n"); } -#[test] -fn hello_pwd() { +#[tokio::test(flavor = "multi_thread")] +async fn hello_pwd() { let mut s = mock::Stream::with_salt(1545, "55104dc76695721d"); - let mut c = ConsumerBuilder::default(); - c.register("never_called", |_| -> io::Result<()> { unreachable!() }); + let mut c: ConsumerBuilder = ConsumerBuilder::default(); + c.register("never_called", |_| Box::pin(async move { unreachable!() })); let c = c .connect_with(s.clone(), Some("foobar".to_string())) + .await .unwrap(); let written = s.pop_bytes_written(0); assert!(written.starts_with(b"HELLO {")); @@ -60,15 +58,17 @@ fn hello_pwd() { drop(c); } -#[test] -fn dequeue() { +#[tokio::test(flavor = "multi_thread")] +async fn dequeue() { let mut s = mock::Stream::default(); let mut c = ConsumerBuilder::default(); - c.register("foobar", |job: Job| -> io::Result<()> { - assert_eq!(job.args(), &["z"]); - Ok(()) + c.register("foobar", |job: Job| { + Box::pin(async move { + assert_eq!(job.args(), &["z"]); + Ok::<(), io::Error>(()) + }) }); - let mut c = c.connect_with(s.clone(), None).unwrap(); + let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); s.push_bytes_to_read( @@ -86,7 +86,7 @@ fn dequeue() { }\r\n", ); s.ok(0); // for the ACK - if let Err(e) = c.run_one(0, &["default"]) { + if let Err(e) = c.run_one(0, &["default"]).await { println!("{:?}", e); unreachable!(); } @@ -99,15 +99,17 @@ fn dequeue() { ); } -#[test] -fn dequeue_first_empty() { +#[tokio::test(flavor = "multi_thread")] +async fn dequeue_first_empty() { let mut s = mock::Stream::default(); let mut c = ConsumerBuilder::default(); - c.register("foobar", |job: Job| -> io::Result<()> { - assert_eq!(job.args(), &["z"]); - Ok(()) + c.register("foobar", |job: Job| { + Box::pin(async move { + assert_eq!(job.args(), &["z"]); + Ok::<(), io::Error>(()) + }) }); - let mut c = c.connect_with(s.clone(), None).unwrap(); + let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); s.push_bytes_to_read( @@ -127,7 +129,7 @@ fn dequeue_first_empty() { s.ok(0); // for the ACK // run once, shouldn't do anything - match c.run_one(0, &["default"]) { + match c.run_one(0, &["default"]).await { Ok(did_work) => assert!(!did_work), Err(e) => { println!("{:?}", e); @@ -135,7 +137,7 @@ fn dequeue_first_empty() { } } // run again, this time doing the job - match c.run_one(0, &["default"]) { + match c.run_one(0, &["default"]).await { Ok(did_work) => assert!(did_work), Err(e) => { println!("{:?}", e); @@ -154,17 +156,19 @@ fn dequeue_first_empty() { ); } -#[test] -fn well_behaved() { +#[tokio::test(flavor = "multi_thread")] +async fn well_behaved() { let mut s = mock::Stream::new(2); // main plus worker let mut c = ConsumerBuilder::default(); c.wid("wid".to_string()); - c.register("foobar", |_| -> io::Result<()> { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - thread::sleep(Duration::from_secs(7)); - Ok(()) + c.register("foobar", |_| { + Box::pin(async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) + }) }); - let mut c = c.connect_with(s.clone(), None).unwrap(); + let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); // push a job that'll take a while to run @@ -183,7 +187,7 @@ fn well_behaved() { }\r\n", ); - let jh = thread::spawn(move || c.run(&["default"])); + let jh = spawn(async move { c.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -197,7 +201,7 @@ fn well_behaved() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!(jh.join().unwrap().unwrap(), 0); + assert_eq!(jh.await.unwrap().unwrap(), 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -219,17 +223,19 @@ fn well_behaved() { ); } -#[test] -fn no_first_job() { +#[tokio::test(flavor = "multi_thread")] +async fn no_first_job() { let mut s = mock::Stream::new(2); let mut c = ConsumerBuilder::default(); c.wid("wid".to_string()); - c.register("foobar", |_| -> io::Result<()> { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - thread::sleep(Duration::from_secs(7)); - Ok(()) + c.register("foobar", |_| { + Box::pin(async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) + }) }); - let mut c = c.connect_with(s.clone(), None).unwrap(); + let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); // push a job that'll take a while to run @@ -248,7 +254,7 @@ fn no_first_job() { }\r\n", ); - let jh = thread::spawn(move || c.run(&["default"])); + let jh = spawn(async move { c.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -262,7 +268,7 @@ fn no_first_job() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!(jh.join().unwrap().unwrap(), 0); + assert_eq!(jh.await.unwrap().unwrap(), 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -285,18 +291,20 @@ fn no_first_job() { ); } -#[test] -fn well_behaved_many() { +#[tokio::test(flavor = "multi_thread")] +async fn well_behaved_many() { let mut s = mock::Stream::new(3); let mut c = ConsumerBuilder::default(); c.workers(2); c.wid("wid".to_string()); - c.register("foobar", |_| -> io::Result<()> { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - thread::sleep(Duration::from_secs(7)); - Ok(()) + c.register("foobar", |_| { + Box::pin(async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) + }) }); - let mut c = c.connect_with(s.clone(), None).unwrap(); + let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); // push two jobs that'll take a while to run @@ -322,7 +330,7 @@ fn well_behaved_many() { ); } - let jh = thread::spawn(move || c.run(&["default"])); + let jh = spawn(async move { c.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -337,7 +345,7 @@ fn well_behaved_many() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!(jh.join().unwrap().unwrap(), 0); + assert_eq!(jh.await.unwrap().unwrap(), 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -361,17 +369,19 @@ fn well_behaved_many() { } } -#[test] -fn terminate() { +#[tokio::test(flavor = "multi_thread")] +async fn terminate() { let mut s = mock::Stream::new(2); - let mut c = ConsumerBuilder::default(); + let mut c: ConsumerBuilder = ConsumerBuilder::default(); c.wid("wid".to_string()); - c.register("foobar", |_| -> io::Result<()> { - loop { - thread::sleep(Duration::from_secs(5)); - } + c.register("foobar", |_| { + Box::pin(async move { + loop { + sleep(Duration::from_secs(5)).await; + } + }) }); - let mut c = c.connect_with(s.clone(), None).unwrap(); + let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); s.push_bytes_to_read( @@ -389,7 +399,7 @@ fn terminate() { }\r\n", ); - let jh = thread::spawn(move || c.run(&["default"])); + let jh = spawn(async move { c.run(&["default"]).await }); // the running thread won't ever return, because the job never exits. the heartbeat thingy is // going to eventually send a heartbeat, and we want to respond to that with a "terminate" @@ -397,7 +407,7 @@ fn terminate() { // at this point, c.run() should immediately return with Ok(1) indicating that one job is still // running. - assert_eq!(jh.join().unwrap().unwrap(), 1); + assert_eq!(jh.await.unwrap().unwrap(), 1); // heartbeat should have seen one beat (terminate) and then send FAIL let written = s.pop_bytes_written(0); diff --git a/tests/mock/inner.rs b/tests/mock/inner.rs new file mode 100644 index 00000000..b7fd2272 --- /dev/null +++ b/tests/mock/inner.rs @@ -0,0 +1,39 @@ +use std::sync::{Arc, Mutex}; +use std::{io, mem}; + +#[derive(Debug, Clone, Default)] +pub(crate) struct Duplex { + pub reader: io::Cursor>, + pub writer: io::Cursor>, +} + +#[derive(Debug, Clone, Default)] +pub(crate) struct MockStream { + pub du: Arc>, +} + +impl MockStream { + pub fn push_bytes_to_read(&mut self, bytes: &[u8]) { + self.du.lock().unwrap().reader.get_mut().extend(bytes); + } + + pub fn pop_bytes_written(&mut self) -> Vec { + let mut du = self.du.lock().unwrap(); + let mut wr = Vec::new(); + mem::swap(&mut wr, du.writer.get_mut()); + du.writer.set_position(0); + wr + } +} + +pub(crate) struct Inner { + pub take_next: usize, + pub streams: Vec, +} + +impl Inner { + pub fn take_stream(&mut self) -> Option { + self.take_next += 1; + self.streams.get(self.take_next - 1).cloned() + } +} diff --git a/tests/mock/mod.rs b/tests/mock/mod.rs index 86835b21..6a4707b4 100644 --- a/tests/mock/mod.rs +++ b/tests/mock/mod.rs @@ -1,25 +1,17 @@ use faktory::Reconnect; -use mockstream::SyncMockStream; -use std::io; -use std::sync::{Arc, Mutex}; +use std::{ + io, + pin::Pin, + sync::{Arc, Mutex}, +}; +use tokio::io::{AsyncRead, AsyncWrite}; -struct Inner { - take_next: usize, - streams: Vec, -} - -impl Inner { - fn take_stream(&mut self) -> Option { - self.take_next += 1; - - self.streams.get(self.take_next - 1).cloned() - } -} +mod inner; #[derive(Clone)] pub struct Stream { - mine: Option, - all: Arc>, + mine: inner::MockStream, + all: Arc>, } impl Default for Stream { @@ -28,8 +20,9 @@ impl Default for Stream { } } +#[async_trait::async_trait] impl Reconnect for Stream { - fn reconnect(&self) -> io::Result { + async fn reconnect(&mut self) -> Result { let mine = self .all .lock() @@ -37,25 +30,47 @@ impl Reconnect for Stream { .take_stream() .expect("tried to make a new stream, but no more connections expected"); Ok(Stream { - mine: Some(mine), + mine, all: Arc::clone(&self.all), }) } } -impl io::Read for Stream { - fn read(&mut self, buf: &mut [u8]) -> io::Result { - self.mine.as_mut().unwrap().read(buf) +impl AsyncRead for Stream { + fn poll_read( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + buf: &mut tokio::io::ReadBuf<'_>, + ) -> std::task::Poll> { + let mut duplex = self.mine.du.lock().unwrap(); + Pin::new(&mut duplex.reader).poll_read(cx, buf) } } -impl io::Write for Stream { - fn write(&mut self, buf: &[u8]) -> io::Result { - self.mine.as_mut().unwrap().write(buf) +impl AsyncWrite for Stream { + fn poll_write( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + buf: &[u8], + ) -> std::task::Poll> { + let mut duplex = self.mine.du.lock().unwrap(); + Pin::new(&mut duplex.writer).poll_write(cx, buf) + } + + fn poll_flush( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> std::task::Poll> { + let mut duplex = self.mine.du.lock().unwrap(); + Pin::new(&mut duplex.writer).poll_flush(cx) } - fn flush(&mut self) -> io::Result<()> { - self.mine.as_mut().unwrap().flush() + fn poll_shutdown( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> std::task::Poll> { + let mut duplex = self.mine.du.lock().unwrap(); + Pin::new(&mut duplex.writer).poll_shutdown(cx) } } @@ -63,7 +78,8 @@ impl Stream { fn make(salt: Option<(usize, &str)>, streams: usize) -> Self { let streams = (0..streams) .map(|_| { - let mut s = SyncMockStream::new(); + let mut s = inner::MockStream::default(); + eprintln!("{:#?}", s); // need to say HELLO if let Some((iters, salt)) = salt { // include salt for pwdhash @@ -79,11 +95,11 @@ impl Stream { }) .collect(); - let mut inner = Inner { + let mut inner = inner::Inner { take_next: 0, streams, }; - let mine = inner.take_stream(); + let mine = inner.take_stream().unwrap(); Stream { mine, diff --git a/tests/producer.rs b/tests/producer.rs index 1db4c82d..d283da1b 100644 --- a/tests/producer.rs +++ b/tests/producer.rs @@ -1,5 +1,4 @@ extern crate faktory; -extern crate mockstream; extern crate serde_json; extern crate url; @@ -7,12 +6,13 @@ mod mock; use faktory::*; -#[test] -fn hello() { +#[tokio::test(flavor = "multi_thread")] +async fn hello() { let mut s = mock::Stream::default(); - let p = Producer::connect_with(s.clone(), None).unwrap(); + let p = Producer::connect_with(s.clone(), None).await.unwrap(); let written = s.pop_bytes_written(0); + eprintln!("{:?}", String::from_utf8(written.clone()).unwrap()); assert!(written.starts_with(b"HELLO {")); let written: serde_json::Value = serde_json::from_slice(&written[b"HELLO ".len()..]).unwrap(); let written = written.as_object().unwrap(); @@ -27,11 +27,13 @@ fn hello() { assert_eq!(written, b"END\r\n"); } -#[test] -fn hello_pwd() { +#[tokio::test(flavor = "multi_thread")] +async fn hello_pwd() { let mut s = mock::Stream::with_salt(1545, "55104dc76695721d"); - let c = Producer::connect_with(s.clone(), Some("foobar".to_string())).unwrap(); + let c = Producer::connect_with(s.clone(), Some("foobar".to_string())) + .await + .unwrap(); let written = s.pop_bytes_written(0); assert!(written.starts_with(b"HELLO {")); let written: serde_json::Value = serde_json::from_slice(&written[b"HELLO ".len()..]).unwrap(); @@ -44,14 +46,14 @@ fn hello_pwd() { drop(c); } -#[test] -fn enqueue() { +#[tokio::test(flavor = "multi_thread")] +async fn enqueue() { let mut s = mock::Stream::default(); - let mut p = Producer::connect_with(s.clone(), None).unwrap(); + let mut p = Producer::connect_with(s.clone(), None).await.unwrap(); s.ignore(0); s.ok(0); - p.enqueue(Job::new("foobar", vec!["z"])).unwrap(); + p.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); let written = s.pop_bytes_written(0); assert!(written.starts_with(b"PUSH {")); @@ -85,17 +87,18 @@ fn enqueue() { assert_eq!(written.get("backtrace").and_then(|h| h.as_u64()), Some(0)); } -#[test] -fn queue_control() { +#[tokio::test(flavor = "multi_thread")] +async fn queue_control() { let mut s = mock::Stream::default(); - let mut p = Producer::connect_with(s.clone(), None).unwrap(); + let mut p = Producer::connect_with(s.clone(), None).await.unwrap(); s.ignore(0); s.ok(0); - p.queue_pause(&["test", "test2"]).unwrap(); + p.queue_pause(&["test", "test2"]).await.unwrap(); s.ok(0); p.queue_resume(&["test3".to_string(), "test4".to_string()]) + .await .unwrap(); let written = s.pop_bytes_written(0); diff --git a/tests/real/community.rs b/tests/real/community.rs index 8b45840a..13b9ce21 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,106 +1,104 @@ extern crate faktory; -extern crate serde_json; -extern crate url; -use faktory::*; +use crate::skip_check; +use faktory::{ConsumerBuilder, Job, JobBuilder, Producer}; use serde_json::Value; -use std::io; -use std::sync; - -macro_rules! skip_check { - () => { - if std::env::var_os("FAKTORY_URL").is_none() { - return; - } - }; -} +use std::{io, sync}; -#[test] -fn hello_p() { +#[tokio::test(flavor = "multi_thread")] +async fn hello_p() { skip_check!(); - let p = Producer::connect(None).unwrap(); + let p = Producer::connect(None).await.unwrap(); drop(p); } -#[test] -fn hello_c() { +#[tokio::test(flavor = "multi_thread")] +async fn enqueue_job() { skip_check!(); - let mut c = ConsumerBuilder::default(); - c.hostname("tester".to_string()) - .wid("hello".to_string()) - .labels(vec!["foo".to_string(), "bar".to_string()]); - c.register("never_called", |_| -> io::Result<()> { unreachable!() }); - let c = c.connect(None).unwrap(); - drop(c); + let mut p = Producer::connect(None).await.unwrap(); + p.enqueue(JobBuilder::new("order").build()).await.unwrap(); } -#[test] -fn roundtrip() { - skip_check!(); - let local = "roundtrip"; +async fn process_order(j: Job) -> Result<(), std::io::Error> { + println!("{:?}", j); + assert_eq!(j.kind(), "order"); + Ok(()) +} - let (tx, rx) = sync::mpsc::channel(); - let tx = sync::Arc::new(sync::Mutex::new(tx)); +#[tokio::test(flavor = "multi_thread")] +async fn roundtrip() { + skip_check!(); + let jid = String::from("x-job-id-0123456782"); let mut c = ConsumerBuilder::default(); - c.hostname("tester".to_string()).wid(local.to_string()); - { - let tx = sync::Arc::clone(&tx); - c.register(local, move |j| -> io::Result<()> { - tx.lock().unwrap().send(j).unwrap(); + c.register("order", |job| Box::pin(process_order(job))); + c.register("image", |job| { + Box::pin(async move { + println!("{:?}", job); + assert_eq!(job.kind(), "image"); Ok(()) - }); - } - let mut c = c.connect(None).unwrap(); - - let mut p = Producer::connect(None).unwrap(); - p.enqueue(Job::new(local, vec!["z"]).on_queue(local)) - .unwrap(); - c.run_one(0, &[local]).unwrap(); - let job = rx.recv().unwrap(); - assert_eq!(job.queue, local); - assert_eq!(job.kind(), local); - assert_eq!(job.args(), &[Value::from("z")]); + }) + }); + let mut c = c.connect(None).await.unwrap(); + let mut p = Producer::connect(None).await.unwrap(); + p.enqueue( + JobBuilder::new("order") + .jid(&jid) + .args(vec!["ISBN-13:9781718501850"]) + .queue("roundtrip") + .build(), + ) + .await + .unwrap(); + let had_one = c.run_one(0, &["roundtrip"]).await.unwrap(); + assert!(had_one); + + let drained = !c.run_one(0, &["roundtrip"]).await.unwrap(); + assert!(drained); } -#[test] -fn multi() { +#[tokio::test(flavor = "multi_thread")] +async fn multi() { skip_check!(); - let local = "multi"; + let local = "multi_async"; let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); - let mut c = ConsumerBuilder::default(); + let mut c = ConsumerBuilder::default_async(); c.hostname("tester".to_string()).wid(local.to_string()); - { + + c.register(local, move |j| { let tx = sync::Arc::clone(&tx); - c.register(local, move |j| -> io::Result<()> { + Box::pin(async move { tx.lock().unwrap().send(j).unwrap(); - Ok(()) - }); - } - let mut c = c.connect(None).unwrap(); + Ok::<(), io::Error>(()) + }) + }); - let mut p = Producer::connect(None).unwrap(); + let mut c = c.connect(None).await.unwrap(); + + let mut p = Producer::connect(None).await.unwrap(); p.enqueue(Job::new(local, vec![Value::from(1), Value::from("foo")]).on_queue(local)) + .await .unwrap(); p.enqueue(Job::new(local, vec![Value::from(2), Value::from("bar")]).on_queue(local)) + .await .unwrap(); - c.run_one(0, &[local]).unwrap(); + c.run_one(0, &[local]).await.unwrap(); let job = rx.recv().unwrap(); assert_eq!(job.queue, local); assert_eq!(job.kind(), local); assert_eq!(job.args(), &[Value::from(1), Value::from("foo")]); - c.run_one(0, &[local]).unwrap(); + c.run_one(0, &[local]).await.unwrap(); let job = rx.recv().unwrap(); assert_eq!(job.queue, local); assert_eq!(job.kind(), local); assert_eq!(job.args(), &[Value::from(2), Value::from("bar")]); } -#[test] -fn fail() { +#[tokio::test(flavor = "multi_thread")] +async fn fail() { skip_check!(); let local = "fail"; @@ -108,33 +106,35 @@ fn fail() { let tx = sync::Arc::new(sync::Mutex::new(tx)); let mut c = ConsumerBuilder::default(); c.hostname("tester".to_string()).wid(local.to_string()); - { + + c.register(local, move |j| { let tx = sync::Arc::clone(&tx); - c.register(local, move |j| -> io::Result<()> { + Box::pin(async move { tx.lock().unwrap().send(j).unwrap(); Err(io::Error::new(io::ErrorKind::Other, "nope")) - }); - } - let mut c = c.connect(None).unwrap(); + }) + }); + + let mut c = c.connect(None).await.unwrap(); - let mut p = Producer::connect(None).unwrap(); + let mut p = Producer::connect(None).await.unwrap(); // note that *enqueueing* the jobs didn't fail! p.enqueue(Job::new(local, vec![Value::from(1), Value::from("foo")]).on_queue(local)) + .await .unwrap(); p.enqueue(Job::new(local, vec![Value::from(2), Value::from("bar")]).on_queue(local)) + .await .unwrap(); - c.run_one(0, &[local]).unwrap(); - c.run_one(0, &[local]).unwrap(); + c.run_one(0, &[local]).await.unwrap(); + c.run_one(0, &[local]).await.unwrap(); drop(c); assert_eq!(rx.into_iter().take(2).count(), 2); - - // TODO: check that jobs *actually* failed! } -#[test] -fn queue() { +#[tokio::test(flavor = "multi_thread")] +async fn queue() { skip_check!(); let local = "pause"; @@ -143,29 +143,33 @@ fn queue() { let mut c = ConsumerBuilder::default(); c.hostname("tester".to_string()).wid(local.to_string()); - c.register(local, move |_job| tx.lock().unwrap().send(true)); - let mut c = c.connect(None).unwrap(); + c.register(local, move |_job| { + let tx = sync::Arc::clone(&tx); + Box::pin(async move { tx.lock().unwrap().send(true) }) + }); + let mut c = c.connect(None).await.unwrap(); - let mut p = Producer::connect(None).unwrap(); + let mut p = Producer::connect(None).await.unwrap(); p.enqueue(Job::new(local, vec![Value::from(1)]).on_queue(local)) + .await .unwrap(); - p.queue_pause(&[local]).unwrap(); + p.queue_pause(&[local]).await.unwrap(); - let had_job = c.run_one(0, &[local]).unwrap(); + let had_job = c.run_one(0, &[local]).await.unwrap(); assert!(!had_job); let worker_executed = rx.try_recv().is_ok(); assert!(!worker_executed); - p.queue_resume(&[local]).unwrap(); + p.queue_resume(&[local]).await.unwrap(); - let had_job = c.run_one(0, &[local]).unwrap(); + let had_job = c.run_one(0, &[local]).await.unwrap(); assert!(had_job); let worker_executed = rx.try_recv().is_ok(); assert!(worker_executed); } -#[test] -fn test_jobs_pushed_in_bulk() { +#[tokio::test(flavor = "multi_thread")] +async fn test_jobs_pushed_in_bulk() { skip_check!(); let local_1 = "test_jobs_pushed_in_bulk_1"; @@ -173,13 +177,14 @@ fn test_jobs_pushed_in_bulk() { let local_3 = "test_jobs_pushed_in_bulk_3"; let local_4 = "test_jobs_pushed_in_bulk_4"; - let mut p = Producer::connect(None).unwrap(); + let mut p = Producer::connect(None).await.unwrap(); let (enqueued_count, errors) = p .enqueue_many(vec![ Job::builder("common").queue(local_1).build(), Job::builder("common").queue(local_2).build(), Job::builder("special").queue(local_2).build(), ]) + .await .unwrap(); assert_eq!(enqueued_count, 3); assert!(errors.is_none()); // error-free @@ -207,6 +212,7 @@ fn test_jobs_pushed_in_bulk() { Job::builder("very_special").queue(local_4).build(), Job::builder("very_special").queue(local_4).build(), ]) + .await .unwrap(); // 3 out of 5 not enqueued; @@ -231,37 +237,45 @@ fn test_jobs_pushed_in_bulk() { // is not an all-or-nothing operation: let mut c = ConsumerBuilder::default(); c.hostname("tester".to_string()).wid(local_3.to_string()); - c.register("very_special", move |_job| -> io::Result<()> { Ok(()) }); - c.register("broken", move |_job| -> io::Result<()> { Ok(()) }); - let mut c = c.connect(None).unwrap(); + c.register("very_special", move |_job| { + Box::pin(async move { Ok::<(), io::Error>(()) }) + }); + c.register("broken", move |_job| { + Box::pin(async move { Ok::<(), io::Error>(()) }) + }); + let mut c = c.connect(None).await.unwrap(); // we targeted "very_special" jobs to "local_4" queue - assert!(c.run_one(0, &[local_4]).unwrap()); - assert!(c.run_one(0, &[local_4]).unwrap()); - assert!(!c.run_one(0, &[local_4]).unwrap()); // drained + assert!(c.run_one(0, &[local_4]).await.unwrap()); + assert!(c.run_one(0, &[local_4]).await.unwrap()); + assert!(!c.run_one(0, &[local_4]).await.unwrap()); // drained // also let's check that the 'broken' jobs have NOT been enqueued, // reminder: we target the broken jobs to "local_3" queue - assert!(!c.run_one(0, &[local_3]).unwrap()); // empty + assert!(!c.run_one(0, &[local_3]).await.unwrap()); // empty +} + +async fn assert_args_empty(j: Job) -> io::Result<()> { + assert!(j.args().is_empty()); + Ok(eprintln!("{:?}", j)) } -#[test] -fn test_jobs_created_with_builder() { +async fn assert_args_not_empty(j: Job) -> io::Result<()> { + assert!(j.args().len() != 0); + Ok(eprintln!("{:?}", j)) +} + +#[tokio::test(flavor = "multi_thread")] +async fn test_jobs_created_with_builder() { skip_check!(); // prepare a producer ("client" in Faktory terms) and consumer ("worker"): - let mut producer = Producer::connect(None).unwrap(); + let mut producer = Producer::connect(None).await.unwrap(); let mut consumer = ConsumerBuilder::default(); - consumer.register("rebuild_index", move |job| -> io::Result<_> { - assert!(job.args().is_empty()); - Ok(eprintln!("{:?}", job)) - }); - consumer.register("register_order", move |job| -> io::Result<_> { - assert!(job.args().len() != 0); - Ok(eprintln!("{:?}", job)) - }); + consumer.register("rebuild_index", |j| Box::pin(assert_args_empty(j))); + consumer.register("register_order", |j| Box::pin(assert_args_not_empty(j))); - let mut consumer = consumer.connect(None).unwrap(); + let mut consumer = consumer.connect(None).await.unwrap(); // prepare some jobs with JobBuilder: let job1 = JobBuilder::new("rebuild_index") @@ -277,23 +291,26 @@ fn test_jobs_created_with_builder() { job3.queue = "test_jobs_created_with_builder_1".to_string(); // enqueue ... - producer.enqueue(job1).unwrap(); - producer.enqueue(job2).unwrap(); - producer.enqueue(job3).unwrap(); + producer.enqueue(job1).await.unwrap(); + producer.enqueue(job2).await.unwrap(); + producer.enqueue(job3).await.unwrap(); // ... and execute: let had_job = consumer .run_one(0, &["test_jobs_created_with_builder_0"]) + .await .unwrap(); assert!(had_job); let had_job = consumer .run_one(0, &["test_jobs_created_with_builder_1"]) + .await .unwrap(); assert!(had_job); let had_job = consumer .run_one(0, &["test_jobs_created_with_builder_1"]) + .await .unwrap(); assert!(had_job); } diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index e2fd807b..f3620657 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -1,42 +1,31 @@ extern crate faktory; -extern crate serde_json; -extern crate url; +use crate::skip_if_not_enterprise; +use crate::utils::learn_faktory_url; use chrono::Utc; use faktory::ent::*; use faktory::*; use serde_json::Value; use std::io; +use tokio::time; -macro_rules! skip_if_not_enterprise { - () => { - if std::env::var_os("FAKTORY_ENT").is_none() { - return; - } - }; +async fn print_job(j: Job) -> io::Result<()> { + Ok(eprintln!("{:?}", j)) } - macro_rules! assert_had_one { ($c:expr, $q:expr) => { - let had_one_job = $c.run_one(0, &[$q]).unwrap(); + let had_one_job = $c.run_one(0, &[$q]).await.unwrap(); assert!(had_one_job); }; } macro_rules! assert_is_empty { ($c:expr, $q:expr) => { - let had_one_job = $c.run_one(0, &[$q]).unwrap(); + let had_one_job = $c.run_one(0, &[$q]).await.unwrap(); assert!(!had_one_job); }; } -fn learn_faktory_url() -> String { - let url = std::env::var_os("FAKTORY_URL").expect( - "Enterprise Faktory should be running for this test, and 'FAKTORY_URL' environment variable should be provided", - ); - url.to_str().expect("Is a utf-8 string").to_owned() -} - fn some_jobs(kind: S, q: S, count: usize) -> impl Iterator where S: Into + Clone + 'static, @@ -46,21 +35,18 @@ where .map(move |_| Job::builder(kind.clone()).queue(q.clone()).build()) } -#[test] -fn ent_expiring_job() { - use std::{thread, time}; - +#[tokio::test(flavor = "multi_thread")] +async fn ent_expiring_job() { skip_if_not_enterprise!(); let url = learn_faktory_url(); + let local = "ent_expiring_job"; // prepare a producer ("client" in Faktory terms) and consumer ("worker"): - let mut p = Producer::connect(Some(&url)).unwrap(); + let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register("AnExpiringJob", move |job| -> io::Result<_> { - Ok(eprintln!("{:?}", job)) - }); - let mut c = c.connect(Some(&url)).unwrap(); + c.register("AnExpiringJob", |j| Box::pin(print_job(j))); + let mut c = c.connect(Some(&url)).await.unwrap(); // prepare an expiring job: let job_ttl_secs: u64 = 3; @@ -68,12 +54,12 @@ fn ent_expiring_job() { let ttl = chrono::Duration::seconds(job_ttl_secs as i64); let job1 = JobBuilder::new("AnExpiringJob") .args(vec!["ISBN-13:9781718501850"]) - .queue("ent_expiring_job") + .queue(local) .expires_at(chrono::Utc::now() + ttl) .build(); // enqueue and fetch immediately job1: - p.enqueue(job1).unwrap(); + p.enqueue(job1).await.unwrap(); assert_had_one!(&mut c, "ent_expiring_job"); // check that the queue is drained: @@ -82,21 +68,20 @@ fn ent_expiring_job() { // prepare another one: let job2 = JobBuilder::new("AnExpiringJob") .args(vec!["ISBN-13:9781718501850"]) - .queue("ent_expiring_job") + .queue(local) .expires_at(chrono::Utc::now() + ttl) .build(); // enqueue and then fetch job2, but after ttl: - p.enqueue(job2).unwrap(); - thread::sleep(time::Duration::from_secs(job_ttl_secs * 2)); - + p.enqueue(job2).await.unwrap(); + tokio::time::sleep(time::Duration::from_secs(job_ttl_secs * 2)).await; // For the non-enterprise edition of Faktory, this assertion will // fail, which should be taken into account when running the test suite on CI. - assert_is_empty!(&mut c, "ent_expiring_job"); + assert_is_empty!(&mut c, local); } -#[test] -fn ent_unique_job() { +#[tokio::test(flavor = "multi_thread")] +async fn ent_unique_job() { use faktory::error; use serde_json::Value; @@ -107,12 +92,10 @@ fn ent_unique_job() { let job_type = "order"; // prepare producer and consumer: - let mut p = Producer::connect(Some(&url)).unwrap(); + let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register(job_type, |job| -> io::Result<_> { - Ok(eprintln!("{:?}", job)) - }); - let mut c = c.connect(Some(&url)).unwrap(); + c.register(job_type, |j| Box::pin(print_job(j))); + let mut c = c.connect(Some(&url)).await.unwrap(); // Reminder. Jobs are considered unique for kind + args + queue. // So the following two jobs, will be accepted by Faktory, since we @@ -123,18 +106,20 @@ fn ent_unique_job() { .args(args.clone()) .queue(queue_name) .build(); - p.enqueue(job1).unwrap(); + + p.enqueue(job1).await.unwrap(); let job2 = JobBuilder::new(job_type) .args(args.clone()) .queue(queue_name) .build(); - p.enqueue(job2).unwrap(); - let had_job = c.run_one(0, &[queue_name]).unwrap(); + p.enqueue(job2).await.unwrap(); + + let had_job = c.run_one(0, &[queue_name]).await.unwrap(); assert!(had_job); - let had_another_one = c.run_one(0, &[queue_name]).unwrap(); + let had_another_one = c.run_one(0, &[queue_name]).await.unwrap(); assert!(had_another_one); - let and_that_is_it_for_now = !c.run_one(0, &[queue_name]).unwrap(); + let and_that_is_it_for_now = !c.run_one(0, &[queue_name]).await.unwrap(); assert!(and_that_is_it_for_now); // let's now create a unique job and followed by a job with @@ -146,7 +131,9 @@ fn ent_unique_job() { .queue(queue_name) .unique_for(unique_for_secs) .build(); - p.enqueue(job1).unwrap(); + + p.enqueue(job1).await.unwrap(); + // this one is a 'duplicate' ... let job2 = Job::builder(job_type) .args(args.clone()) @@ -154,7 +141,8 @@ fn ent_unique_job() { .unique_for(unique_for_secs) .build(); // ... so the server will respond accordingly: - let res = p.enqueue(job2).unwrap_err(); + let res = p.enqueue(job2).await.unwrap_err(); + if let error::Error::Protocol(error::Protocol::UniqueConstraintViolation { msg }) = res { assert_eq!(msg, "Job not unique"); } else { @@ -162,12 +150,14 @@ fn ent_unique_job() { } // Let's now consume the job which is 'holding' a unique lock: - let had_job = c.run_one(0, &[queue_name]).unwrap(); + let had_job = c.run_one(0, &[queue_name]).await.unwrap(); + assert!(had_job); // And check that the queue is really empty (`job2` from above // has not been queued indeed): - let queue_is_empty = !c.run_one(0, &[queue_name]).unwrap(); + let queue_is_empty = !c.run_one(0, &[queue_name]).await.unwrap(); + assert!(queue_is_empty); // Now let's repeat the latter case, but providing different args to job2: @@ -176,7 +166,9 @@ fn ent_unique_job() { .queue(queue_name) .unique_for(unique_for_secs) .build(); - p.enqueue(job1).unwrap(); + + p.enqueue(job1).await.unwrap(); + // this one is *NOT* a 'duplicate' ... let job2 = JobBuilder::new(job_type) .args(vec![Value::from("ISBN-13:9781718501850"), Value::from(101)]) @@ -184,7 +176,13 @@ fn ent_unique_job() { .unique_for(unique_for_secs) .build(); // ... so the server will accept it: - p.enqueue(job2).unwrap(); + + p.enqueue(job2).await.unwrap(); + + let had_job = c.run_one(0, &[queue_name]).await.unwrap(); + assert!(had_job); + let had_another_one = c.run_one(0, &[queue_name]).await.unwrap(); + assert!(had_another_one); assert_had_one!(&mut c, queue_name); assert_had_one!(&mut c, queue_name); @@ -192,11 +190,11 @@ fn ent_unique_job() { assert_is_empty!(&mut c, queue_name); } -#[test] -fn ent_unique_job_until_success() { +#[tokio::test(flavor = "multi_thread")] +async fn ent_unique_job_until_success() { use faktory::error; - use std::thread; - use std::time; + use std::io; + use tokio::time; skip_if_not_enterprise!(); @@ -211,42 +209,45 @@ fn ent_unique_job_until_success() { let unique_for = 4; let url1 = url.clone(); - let handle = thread::spawn(move || { + let handle = tokio::spawn(async move { // prepare producer and consumer, where the former can // send a job difficulty level as a job's args and the lattter // will sleep for a corresponding period of time, pretending // to work hard: - let mut producer_a = Producer::connect(Some(&url1)).unwrap(); - let mut consumer_a = ConsumerBuilder::default(); - consumer_a.register(job_type, |job| -> io::Result<_> { - let args = job.args().to_owned(); - let mut args = args.iter(); - let diffuculty_level = args - .next() - .expect("job difficulty level is there") - .to_owned(); - let sleep_secs = - serde_json::from_value::(diffuculty_level).expect("a valid number"); - thread::sleep(time::Duration::from_secs(sleep_secs as u64)); - Ok(eprintln!("{:?}", job)) + let mut producer_a = Producer::connect(Some(&url1)).await.unwrap(); + let mut consumer_a = ConsumerBuilder::default_async(); + consumer_a.register(job_type, |job| { + Box::pin(async move { + let args = job.args().to_owned(); + let mut args = args.iter(); + let diffuculty_level = args + .next() + .expect("job difficulty level is there") + .to_owned(); + let sleep_secs = + serde_json::from_value::(diffuculty_level).expect("a valid number"); + time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; + eprintln!("{:?}", job); + Ok::<(), io::Error>(()) + }) }); - let mut consumer_a = consumer_a.connect(Some(&url1)).unwrap(); + let mut consumer_a = consumer_a.connect(Some(&url1)).await.unwrap(); let job = JobBuilder::new(job_type) .args(vec![difficulty_level]) .queue(queue_name) .unique_for(unique_for) .unique_until_success() // Faktory's default .build(); - producer_a.enqueue(job).unwrap(); - let had_job = consumer_a.run_one(0, &[queue_name]).unwrap(); + producer_a.enqueue(job).await.unwrap(); + let had_job = consumer_a.run_one(0, &[queue_name]).await.unwrap(); assert!(had_job); }); // let spawned thread gain momentum: - thread::sleep(time::Duration::from_secs(1)); + time::sleep(time::Duration::from_secs(1)).await; // continue - let mut producer_b = Producer::connect(Some(&url)).unwrap(); + let mut producer_b = Producer::connect(Some(&url)).await.unwrap(); // this one is a 'duplicate' because the job is still // being executed in the spawned thread: @@ -257,14 +258,14 @@ fn ent_unique_job_until_success() { .build(); // as a result: - let res = producer_b.enqueue(job).unwrap_err(); + let res = producer_b.enqueue(job).await.unwrap_err(); if let error::Error::Protocol(error::Protocol::UniqueConstraintViolation { msg }) = res { assert_eq!(msg, "Job not unique"); } else { panic!("Expected protocol error.") } - handle.join().expect("should join successfully"); + handle.await.expect("should join successfully"); // Now that the job submitted in a spawned thread has been successfully executed // (with ACK sent to server), the producer 'B' can push another one: @@ -276,13 +277,13 @@ fn ent_unique_job_until_success() { .unique_for(unique_for) .build(), ) + .await .unwrap(); } -#[test] -fn ent_unique_job_until_start() { - use std::thread; - use std::time; +#[tokio::test(flavor = "multi_thread")] +async fn ent_unique_job_until_start() { + use tokio::time; skip_if_not_enterprise!(); @@ -294,22 +295,25 @@ fn ent_unique_job_until_start() { let unique_for = 4; let url1 = url.clone(); - let handle = thread::spawn(move || { - let mut producer_a = Producer::connect(Some(&url1)).unwrap(); - let mut consumer_a = ConsumerBuilder::default(); - consumer_a.register(job_type, |job| -> io::Result<_> { - let args = job.args().to_owned(); - let mut args = args.iter(); - let diffuculty_level = args - .next() - .expect("job difficulty level is there") - .to_owned(); - let sleep_secs = - serde_json::from_value::(diffuculty_level).expect("a valid number"); - thread::sleep(time::Duration::from_secs(sleep_secs as u64)); - Ok(eprintln!("{:?}", job)) + let handle = tokio::spawn(async move { + let mut producer_a = Producer::connect(Some(&url1)).await.unwrap(); + let mut consumer_a = ConsumerBuilder::default_async(); + consumer_a.register(job_type, |job| { + Box::pin(async move { + let args = job.args().to_owned(); + let mut args = args.iter(); + let diffuculty_level = args + .next() + .expect("job difficulty level is there") + .to_owned(); + let sleep_secs = + serde_json::from_value::(diffuculty_level).expect("a valid number"); + time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; + eprintln!("{:?}", job); + Ok::<(), io::Error>(()) + }) }); - let mut consumer_a = consumer_a.connect(Some(&url1)).unwrap(); + let mut consumer_a = consumer_a.connect(Some(&url1)).await.unwrap(); producer_a .enqueue( JobBuilder::new(job_type) @@ -319,17 +323,18 @@ fn ent_unique_job_until_start() { .unique_until_start() // NB! .build(), ) + .await .unwrap(); // as soon as the job is fetched, the unique lock gets released - let had_job = consumer_a.run_one(0, &[queue_name]).unwrap(); + let had_job = consumer_a.run_one(0, &[queue_name]).await.unwrap(); assert!(had_job); }); // let spawned thread gain momentum: - thread::sleep(time::Duration::from_secs(1)); + time::sleep(time::Duration::from_secs(1)).await; // the unique lock has been released by this time, so the job is enqueued successfully: - let mut producer_b = Producer::connect(Some(&url)).unwrap(); + let mut producer_b = Producer::connect(Some(&url)).await.unwrap(); producer_b .enqueue( JobBuilder::new(job_type) @@ -338,20 +343,20 @@ fn ent_unique_job_until_start() { .unique_for(unique_for) .build(), ) + .await .unwrap(); - handle.join().expect("should join successfully"); + handle.await.expect("should join successfully"); } -#[test] -fn ent_unique_job_bypass_unique_lock() { +#[tokio::test(flavor = "multi_thread")] +async fn ent_unique_job_bypass_unique_lock() { use faktory::error; skip_if_not_enterprise!(); let url = learn_faktory_url(); - - let mut producer = Producer::connect(Some(&url)).unwrap(); + let mut producer = Producer::connect(Some(&url)).await.unwrap(); let queue_name = "ent_unique_job_bypass_unique_lock"; let job1 = Job::builder("order") .queue(queue_name) @@ -365,8 +370,8 @@ fn ent_unique_job_bypass_unique_lock() { .queue(queue_name) // same queue .build(); // NB: `unique_for` not set - producer.enqueue(job1).unwrap(); - producer.enqueue(job2).unwrap(); // bypassing the lock! + producer.enqueue(job1).await.unwrap(); + producer.enqueue(job2).await.unwrap(); // bypassing the lock! // This _is_ a 'duplicate'. let job3 = Job::builder("order") @@ -374,7 +379,7 @@ fn ent_unique_job_bypass_unique_lock() { .unique_for(60) // NB .build(); - let res = producer.enqueue(job3).unwrap_err(); // NOT bypassing the lock! + let res = producer.enqueue(job3).await.unwrap_err(); // NOT bypassing the lock! if let error::Error::Protocol(error::Protocol::UniqueConstraintViolation { msg }) = res { assert_eq!(msg, "Job not unique"); @@ -384,19 +389,18 @@ fn ent_unique_job_bypass_unique_lock() { // let's consume three times from the queue to verify that the first two jobs // have been enqueued for real, while the last one has not. - let mut c = ConsumerBuilder::default(); - c.register("order", |j| -> io::Result<_> { Ok(eprintln!("{:?}", j)) }); - let mut c = c.connect(Some(&url)).unwrap(); + let mut c = ConsumerBuilder::default_async(); + c.register("order", |j| Box::pin(print_job(j))); + let mut c = c.connect(Some(&url)).await.unwrap(); - assert!(c.run_one(0, &[queue_name]).unwrap()); - assert!(c.run_one(0, &[queue_name]).unwrap()); - assert!(!c.run_one(0, &[queue_name]).unwrap()); // empty; + assert!(c.run_one(0, &[queue_name]).await.unwrap()); + assert!(c.run_one(0, &[queue_name]).await.unwrap()); + assert!(!c.run_one(0, &[queue_name]).await.unwrap()); // empty; } -#[test] -fn test_tracker_can_send_and_retrieve_job_execution_progress() { +#[tokio::test(flavor = "multi_thread")] +async fn test_tracker_can_send_and_retrieve_job_execution_progress() { use std::{ - io, sync::{Arc, Mutex}, thread, time, }; @@ -406,12 +410,12 @@ fn test_tracker_can_send_and_retrieve_job_execution_progress() { let url = learn_faktory_url(); let t = Arc::new(Mutex::new( - Client::connect(Some(&url)).expect("job progress tracker created successfully"), + Client::connect(Some(&url)) + .await + .expect("job progress tracker created successfully"), )); - let t_captured = Arc::clone(&t); - - let mut p = Producer::connect(Some(&url)).unwrap(); + let mut p = Producer::connect(Some(&url)).await.unwrap(); let job_tackable = JobBuilder::new("order") .args(vec![Value::from("ISBN-13:9781718501850")]) @@ -427,56 +431,65 @@ fn test_tracker_can_send_and_retrieve_job_execution_progress() { // let's remember this job's id: let job_id = job_tackable.id().to_owned(); - let job_id_captured = job_id.clone(); - p.enqueue(job_tackable).expect("enqueued"); + p.enqueue(job_tackable).await.expect("enqueued"); let mut c = ConsumerBuilder::default(); - c.register("order", move |job| -> io::Result<_> { - // trying to set progress on a community edition of Faktory will give: - // 'an internal server error occurred: tracking subsystem is only available in Faktory Enterprise' - assert!(t_captured - .lock() - .expect("lock acquired") - .set_progress( - ProgressUpdate::builder(&job_id_captured) - .desc("Still processing...".to_owned()) - .percent(32) - .build(), - ) - .is_ok()); - // Let's update the progress once again, to check the 'set_progress' shortcut: - assert!(t_captured - .lock() - .unwrap() - .set_progress(ProgressUpdate::set(&job_id_captured, 33)) - .is_ok()); - - // let's sleep for a while ... - thread::sleep(time::Duration::from_secs(2)); - - // ... and read the progress info - let result = t_captured - .lock() - .expect("lock acquired") - .get_progress(job_id_captured.clone()) - .expect("Retrieved progress update over the wire"); - - assert!(result.is_some()); - let result = result.unwrap(); - assert_eq!(result.jid, job_id_captured.clone()); - match result.state { - JobState::Working => {} - _ => panic!("expected job's state to be 'working'"), - } - assert!(result.updated_at.is_some()); - assert_eq!(result.percent, Some(33)); - // considering the job done - Ok(eprintln!("{:?}", job)) - }); + { + let job_id = job_id.clone(); + let url = url.clone(); + c.register("order", move |job| { + let job_id = job_id.clone(); + let url = url.clone(); + Box::pin(async move { + let mut t = Client::connect(Some(&url)) + .await + .expect("job progress tracker created successfully"); + + // trying to set progress on a community edition of Faktory will give: + // 'an internal server error occurred: tracking subsystem is only available in Faktory Enterprise' + assert!(t + .set_progress( + ProgressUpdate::builder(&job_id.clone()) + .desc("Still processing...".to_owned()) + .percent(32) + .build(), + ) + .await + .is_ok()); + // Let's update the progress once again, to check the 'set_progress' shortcut: + assert!(t + .set_progress(ProgressUpdate::set(&job_id.clone(), 33)) + .await + .is_ok()); + + // let's sleep for a while ... + thread::sleep(time::Duration::from_secs(2)); + + // ... and read the progress info + let result = t + .get_progress(job_id.clone()) + .await + .expect("Retrieved progress update over the wire"); + + assert!(result.is_some()); + let result = result.unwrap(); + assert_eq!(result.jid, job_id.clone()); + match result.state { + JobState::Working => {} + _ => panic!("expected job's state to be 'working'"), + } + assert!(result.updated_at.is_some()); + assert_eq!(result.percent, Some(33)); + // considering the job done + Ok::<(), io::Error>(eprintln!("{:?}", job)) + }) + }); + } let mut c = c .connect(Some(&url)) + .await .expect("Successfully ran a handshake with 'Faktory'"); assert_had_one!(&mut c, "test_tracker_can_send_progress_update"); @@ -484,6 +497,7 @@ fn test_tracker_can_send_and_retrieve_job_execution_progress() { .lock() .expect("lock acquired successfully") .get_progress(job_id.clone()) + .await .expect("Retrieved progress update over the wire once again") .expect("Some progress"); @@ -502,19 +516,20 @@ fn test_tracker_can_send_and_retrieve_job_execution_progress() { .desc("Final stage.".to_string()) .percent(99) .build(); - assert!(t.lock().unwrap().set_progress(upd).is_ok()); + assert!(t.lock().unwrap().set_progress(upd).await.is_ok()); let progress = t .lock() .unwrap() .get_progress(job_id) + .await .expect("Retrieved progress update over the wire once again") .expect("Some progress"); if progress.percent != Some(100) { let upd = progress.update_percent(100); assert_eq!(upd.desc, progress.desc); - assert!(t.lock().unwrap().set_progress(upd).is_ok()) + assert!(t.lock().unwrap().set_progress(upd).await.is_ok()) } // What about 'ordinary' job ? @@ -522,6 +537,7 @@ fn test_tracker_can_send_and_retrieve_job_execution_progress() { // Sending it ... p.enqueue(job_ordinary) + .await .expect("Successfuly send to Faktory"); // ... and asking for its progress @@ -529,6 +545,7 @@ fn test_tracker_can_send_and_retrieve_job_execution_progress() { .lock() .expect("lock acquired") .get_progress(job_id.clone()) + .await .expect("Retrieved progress update over the wire once again") .expect("Some progress"); @@ -546,17 +563,21 @@ fn test_tracker_can_send_and_retrieve_job_execution_progress() { assert!(progress.desc.is_none()); } -#[test] -fn test_batch_of_jobs_can_be_initiated() { +#[tokio::test(flavor = "multi_thread")] +async fn test_batch_of_jobs_can_be_initiated() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - let mut p = Producer::connect(Some(&url)).unwrap(); + let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register("thumbnail", move |_job| -> io::Result<_> { Ok(()) }); - c.register("clean_up", move |_job| -> io::Result<_> { Ok(()) }); - let mut c = c.connect(Some(&url)).unwrap(); - let mut t = Client::connect(Some(&url)).expect("job progress tracker created successfully"); + c.register("thumbnail", move |_job| { + Box::pin(async move { Ok::<(), io::Error>(()) }) + }); + c.register("clean_up", move |_job| Box::pin(async move { Ok(()) })); + let mut c = c.connect(Some(&url)).await.unwrap(); + let mut t = Client::connect(Some(&url)) + .await + .expect("job progress tracker created successfully"); let job_1 = Job::builder("thumbnail") .args(vec!["path/to/original/image1"]) @@ -582,21 +603,22 @@ fn test_batch_of_jobs_can_be_initiated() { let time_just_before_batch_init = Utc::now(); - let mut b = p.start_batch(batch).unwrap(); + let mut b = p.start_batch(batch).await.unwrap(); // let's remember batch id: let bid = b.id().to_string(); - assert!(b.add(job_1).unwrap().is_none()); - assert!(b.add(job_2).unwrap().is_none()); - assert_eq!(b.add(job_3).unwrap().unwrap(), "check-check"); - b.commit().unwrap(); + assert!(b.add(job_1).await.unwrap().is_none()); + assert!(b.add(job_2).await.unwrap().is_none()); + assert_eq!(b.add(job_3).await.unwrap().unwrap(), "check-check"); + b.commit().await.unwrap(); // The batch has been committed, let's see its status: let time_just_before_getting_status = Utc::now(); let s = t .get_batch_status(bid.clone()) + .await .expect("successfully fetched batch status from server...") .expect("...and it's not none"); @@ -622,6 +644,7 @@ fn test_batch_of_jobs_can_be_initiated() { // we have consumed one job from this batch: let s = t .get_batch_status(bid.clone()) + .await .expect("successfully fetched batch status from server...") .expect("...and it's not none"); @@ -638,6 +661,7 @@ fn test_batch_of_jobs_can_be_initiated() { // let's check batch status once again: let s = t .get_batch_status(bid.clone()) + .await .expect("successfully fetched batch status from server...") .expect("...and it's not none"); @@ -653,6 +677,7 @@ fn test_batch_of_jobs_can_be_initiated() { // all the jobs from the batch have been executed: let s = t .get_batch_status(bid.clone()) + .await .expect("successfully fetched batch status from server...") .expect("...and it's not none"); @@ -668,6 +693,7 @@ fn test_batch_of_jobs_can_be_initiated() { // let's check batch status one last time: let s = t .get_batch_status(bid.clone()) + .await .expect("successfully fetched batch status from server...") .expect("...and it's not none"); @@ -675,17 +701,21 @@ fn test_batch_of_jobs_can_be_initiated() { assert_eq!(s.complete_callback_state, CallbackState::FinishedOk); } -#[test] -fn test_batches_can_be_nested() { +#[tokio::test(flavor = "multi_thread")] +async fn test_batches_can_be_nested() { skip_if_not_enterprise!(); let url = learn_faktory_url(); // Set up 'producer', 'consumer', and 'tracker': - let mut p = Producer::connect(Some(&url)).unwrap(); + let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register("jobtype", move |_job| -> io::Result<_> { Ok(()) }); - let mut _c = c.connect(Some(&url)).unwrap(); - let mut t = Client::connect(Some(&url)).expect("job progress tracker created successfully"); + c.register("jobtype", move |_job| { + Box::pin(async move { Ok::<(), io::Error>(()) }) + }); + let mut _c = c.connect(Some(&url)).await.unwrap(); + let mut t = Client::connect(Some(&url)) + .await + .expect("job progress tracker created successfully"); // Prepare some jobs: let parent_job1 = Job::builder("jobtype") @@ -718,44 +748,53 @@ fn test_batches_can_be_nested() { let parent_batch = Batch::builder() .description("Parent batch") .with_success_callback(parent_cb_job); - let mut parent_batch = p.start_batch(parent_batch).unwrap(); + let mut parent_batch = p.start_batch(parent_batch).await.unwrap(); let parent_batch_id = parent_batch.id().to_owned(); - parent_batch.add(parent_job1).unwrap(); + parent_batch.add(parent_job1).await.unwrap(); let child_batch = Batch::builder() .description("Child batch") .with_success_callback(child_cb_job); - let mut child_batch = parent_batch.start_batch(child_batch).unwrap(); + let mut child_batch = parent_batch.start_batch(child_batch).await.unwrap(); let child_batch_id = child_batch.id().to_owned(); - child_batch.add(child_job_1).unwrap(); - child_batch.add(child_job_2).unwrap(); + child_batch.add(child_job_1).await.unwrap(); + child_batch.add(child_job_2).await.unwrap(); let grandchild_batch = Batch::builder() .description("Grandchild batch") .with_success_callback(grandchild_cb_job); - let mut grandchild_batch = child_batch.start_batch(grandchild_batch).unwrap(); + let mut grandchild_batch = child_batch.start_batch(grandchild_batch).await.unwrap(); let grandchild_batch_id = grandchild_batch.id().to_owned(); - grandchild_batch.add(grand_child_job_1).unwrap(); + grandchild_batch.add(grand_child_job_1).await.unwrap(); - grandchild_batch.commit().unwrap(); - child_batch.commit().unwrap(); - parent_batch.commit().unwrap(); + grandchild_batch.commit().await.unwrap(); + child_batch.commit().await.unwrap(); + parent_batch.commit().await.unwrap(); // batches finish let parent_status = t .get_batch_status(parent_batch_id.clone()) + .await .unwrap() .unwrap(); assert_eq!(parent_status.description, Some("Parent batch".to_string())); assert_eq!(parent_status.total, 1); assert_eq!(parent_status.parent_bid, None); - let child_status = t.get_batch_status(child_batch_id.clone()).unwrap().unwrap(); + let child_status = t + .get_batch_status(child_batch_id.clone()) + .await + .unwrap() + .unwrap(); assert_eq!(child_status.description, Some("Child batch".to_string())); assert_eq!(child_status.total, 2); assert_eq!(child_status.parent_bid, Some(parent_batch_id)); - let grandchild_status = t.get_batch_status(grandchild_batch_id).unwrap().unwrap(); + let grandchild_status = t + .get_batch_status(grandchild_batch_id) + .await + .unwrap() + .unwrap(); assert_eq!( grandchild_status.description, Some("Grandchild batch".to_string()) @@ -764,18 +803,20 @@ fn test_batches_can_be_nested() { assert_eq!(grandchild_status.parent_bid, Some(child_batch_id)); } -#[test] -fn test_callback_will_not_be_queued_unless_batch_gets_committed() { +#[tokio::test(flavor = "multi_thread")] +async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { skip_if_not_enterprise!(); let url = learn_faktory_url(); // prepare a producer, a consumer of 'order' jobs, and a tracker: - let mut p = Producer::connect(Some(&url)).unwrap(); + let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register("order", move |_job| -> io::Result<_> { Ok(()) }); - c.register("order_clean_up", move |_job| -> io::Result<_> { Ok(()) }); - let mut c = c.connect(Some(&url)).unwrap(); - let mut t = Client::connect(Some(&url)).unwrap(); + c.register("order", move |_job| Box::pin(async move { Ok(()) })); + c.register("order_clean_up", move |_job| { + Box::pin(async move { Ok::<(), io::Error>(()) }) + }); + let mut c = c.connect(Some(&url)).await.unwrap(); + let mut t = Client::connect(Some(&url)).await.unwrap(); let mut jobs = some_jobs( "order", @@ -795,16 +836,17 @@ fn test_callback_will_not_be_queued_unless_batch_gets_committed() { .description("Orders processing workload") .with_success_callback(callbacks.next().unwrap()), ) + .await .unwrap(); let bid = b.id().to_string(); // push 3 jobs onto this batch, but DO NOT commit the batch: for _ in 0..3 { - b.add(jobs.next().unwrap()).unwrap(); + b.add(jobs.next().unwrap()).await.unwrap(); } // check this batch's status: - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 3); assert_eq!(s.pending, 3); assert_eq!(s.success_callback_state, CallbackState::Pending); @@ -824,7 +866,7 @@ fn test_callback_will_not_be_queued_unless_batch_gets_committed() { ); // check this batch's status again: - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 3); assert_eq!(s.pending, 0); assert_eq!(s.failed, 0); @@ -837,10 +879,10 @@ fn test_callback_will_not_be_queued_unless_batch_gets_committed() { ); // now let's COMMIT the batch ... - b.commit().unwrap(); + b.commit().await.unwrap(); // ... and check batch status: - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.success_callback_state, CallbackState::Enqueued); // finally, let's consume from the success callbacks queue ... @@ -850,18 +892,18 @@ fn test_callback_will_not_be_queued_unless_batch_gets_committed() { ); // ... and see the final status: - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.success_callback_state, CallbackState::FinishedOk); } -#[test] -fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { +#[tokio::test(flavor = "multi_thread")] +async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { use std::{thread, time}; skip_if_not_enterprise!(); let url = learn_faktory_url(); - let mut p = Producer::connect(Some(&url)).unwrap(); - let mut t = Client::connect(Some(&url)).unwrap(); + let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut t = Client::connect(Some(&url)).await.unwrap(); let q_name = "test_callback_will_be_queued_upon_commit_even_if_batch_is_empty"; let complete_cb_jobtype = "complete_callback_jobtype"; let success_cb_jobtype = "success_cb_jobtype"; @@ -873,20 +915,21 @@ fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { .description("Orders processing workload") .with_callbacks(success_cb, complete_cb), ) + .await .unwrap(); let bid = b.id().to_owned(); - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 0); // no jobs in the batch; assert_eq!(s.success_callback_state, CallbackState::Pending); assert_eq!(s.complete_callback_state, CallbackState::Pending); - b.commit().unwrap(); + b.commit().await.unwrap(); // let's give the Faktory server some time: thread::sleep(time::Duration::from_secs(2)); - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 0); // again, there are no jobs in the batch ... // The docs say "If you don't push any jobs into the batch, any callbacks will fire immediately upon BATCH COMMIT." @@ -895,19 +938,21 @@ fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { assert_eq!(s.success_callback_state, CallbackState::Pending); let mut c = ConsumerBuilder::default(); - c.register(complete_cb_jobtype, move |_job| -> io::Result<_> { Ok(()) }); - c.register(success_cb_jobtype, move |_job| -> io::Result<_> { - Err(io::Error::new( - io::ErrorKind::Other, - "we want this one to fail to test the 'CallbackState' behavior", - )) + c.register(complete_cb_jobtype, |_job| Box::pin(async { Ok(()) })); + c.register(success_cb_jobtype, |_job| { + Box::pin(async { + Err(io::Error::new( + io::ErrorKind::Other, + "we want this one to fail to test the 'CallbackState' behavior", + )) + }) }); - let mut c = c.connect(Some(&url)).unwrap(); + let mut c = c.connect(Some(&url)).await.unwrap(); assert_had_one!(&mut c, q_name); // complete callback consumed - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 0); match s.complete_callback_state { CallbackState::FinishedOk => {} @@ -919,7 +964,7 @@ fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { } assert_had_one!(&mut c, q_name); // success callback consumed - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 0); assert_eq!(s.complete_callback_state, CallbackState::FinishedOk); // Still `Enqueued` due to the fact that it was not finished with success. @@ -928,12 +973,12 @@ fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { assert_eq!(s.success_callback_state, CallbackState::Enqueued); } -#[test] -fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { +#[tokio::test(flavor = "multi_thread")] +async fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - let mut p = Producer::connect(Some(&url)).unwrap(); - let mut t = Client::connect(Some(&url)).unwrap(); + let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut t = Client::connect(Some(&url)).await.unwrap(); let mut jobs = some_jobs("order", "test_batch_can_be_reopned_add_extra_jobs_added", 4); let mut callbacks = some_jobs( "order_clean_up", @@ -945,18 +990,21 @@ fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { .description("Orders processing workload") .with_success_callback(callbacks.next().unwrap()); - let mut b = p.start_batch(b).unwrap(); + let mut b = p.start_batch(b).await.unwrap(); let bid = b.id().to_string(); - b.add(jobs.next().unwrap()).unwrap(); // 1 job - b.add(jobs.next().unwrap()).unwrap(); // 2 jobs + b.add(jobs.next().unwrap()).await.unwrap(); // 1 job + b.add(jobs.next().unwrap()).await.unwrap(); // 2 jobs - let status = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let status = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(status.total, 2); assert_eq!(status.pending, 2); // ############################## SUBTEST 0 ########################################## // Let's try to open/reopen a batch we have never declared: - let b = p.open_batch(String::from("non-existent-batch-id")).unwrap(); + let b = p + .open_batch(String::from("non-existent-batch-id")) + .await + .unwrap(); // The server will error back on this, with "No such batch ", but // we are handling this case for the end-user and returning `Ok(None)` instead, indicating // this way that there is not such batch. @@ -967,12 +1015,12 @@ fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { // Let's fist of all try to open the batch we have not committed yet: // [We can use `producer::open_batch` specifying a bid OR - even we previously retrived // a status for this batch, we can go with `status::open` providing an exclusive ref to producer] - let mut b = status.open(&mut p).unwrap().unwrap(); - b.add(jobs.next().unwrap()).unwrap(); // 3 jobs + let mut b = status.open(&mut p).await.unwrap().unwrap(); + b.add(jobs.next().unwrap()).await.unwrap(); // 3 jobs - b.commit().unwrap(); // committig the batch + b.commit().await.unwrap(); // committig the batch - let status = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let status = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(status.total, 3); assert_eq!(status.pending, 3); @@ -991,12 +1039,13 @@ fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { // Let's try to open an already committed batch: let mut b = p .open_batch(bid.clone()) + .await .expect("no error") .expect("is some"); - b.add(jobs.next().unwrap()).unwrap(); // 4 jobs - b.commit().unwrap(); // committing the batch again! + b.add(jobs.next().unwrap()).await.unwrap(); // 4 jobs + b.commit().await.unwrap(); // committing the batch again! - let s = t.get_batch_status(bid.clone()).unwrap().unwrap(); + let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 4); assert_eq!(s.pending, 4); @@ -1007,7 +1056,7 @@ fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { // ############################## SUBTEST 3 ############################################ // Let's see if we will be able to - again - open the committed batch "from outside" and // add a nested batch to it. - let mut b = p.open_batch(bid.clone()).unwrap().expect("is some"); + let mut b = p.open_batch(bid.clone()).await.unwrap().expect("is some"); let mut nested_callbacks = some_jobs( "order_clean_up__NESTED", "test_batch_can_be_reopned_add_extra_jobs_added__CALLBACKs__NESTED", @@ -1019,13 +1068,17 @@ fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { nested_callbacks.next().unwrap(), nested_callbacks.next().unwrap(), ); - let nested_batch = b.start_batch(nested_batch_declaration).unwrap(); + let nested_batch = b.start_batch(nested_batch_declaration).await.unwrap(); let nested_bid = nested_batch.id().to_string(); // committing the nested batch without any jobs // since those are just not relevant for this test: - nested_batch.commit().unwrap(); + nested_batch.commit().await.unwrap(); - let s = t.get_batch_status(nested_bid.clone()).unwrap().unwrap(); + let s = t + .get_batch_status(nested_bid.clone()) + .await + .unwrap() + .unwrap(); assert_eq!(s.total, 0); assert_eq!(s.parent_bid, Some(bid)); // this is really our child batch assert_eq!(s.complete_callback_state, CallbackState::Enqueued); @@ -1048,6 +1101,7 @@ fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { // Let's try to re-open the nested batch that we have already committed and add some jobs to it. let mut b = p .open_batch(nested_bid.clone()) + .await .expect("no error") .expect("is some"); let mut more_jobs = some_jobs( @@ -1055,11 +1109,15 @@ fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { "test_batch_can_be_reopned_add_extra_jobs_added__NESTED", 2, ); - b.add(more_jobs.next().unwrap()).unwrap(); - b.add(more_jobs.next().unwrap()).unwrap(); - b.commit().unwrap(); + b.add(more_jobs.next().unwrap()).await.unwrap(); + b.add(more_jobs.next().unwrap()).await.unwrap(); + b.commit().await.unwrap(); - let s = t.get_batch_status(nested_bid.clone()).unwrap().unwrap(); + let s = t + .get_batch_status(nested_bid.clone()) + .await + .unwrap() + .unwrap(); match s.complete_callback_state { CallbackState::Enqueued => {} _ => panic!("Expected the callback to have been enqueued"), diff --git a/tests/real/main.rs b/tests/real/main.rs index b8b8f3dd..7fbfb954 100644 --- a/tests/real/main.rs +++ b/tests/real/main.rs @@ -1,4 +1,5 @@ mod community; +mod utils; #[cfg(feature = "ent")] mod enterprise; diff --git a/tests/real/utils.rs b/tests/real/utils.rs new file mode 100644 index 00000000..9fefb92f --- /dev/null +++ b/tests/real/utils.rs @@ -0,0 +1,25 @@ +#[macro_export] +macro_rules! skip_check { + () => { + if std::env::var_os("FAKTORY_URL").is_none() { + return; + } + }; +} + +#[macro_export] +macro_rules! skip_if_not_enterprise { + () => { + if std::env::var_os("FAKTORY_ENT").is_none() { + return; + } + }; +} + +#[cfg(feature = "ent")] +pub fn learn_faktory_url() -> String { + let url = std::env::var_os("FAKTORY_URL").expect( + "Enterprise Faktory should be running for this test, and 'FAKTORY_URL' environment variable should be provided", + ); + url.to_str().expect("Is a utf-8 string").to_owned() +} diff --git a/tests/tls.rs b/tests/tls.rs index 3260ea7c..2811209b 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -4,9 +4,9 @@ use faktory::*; use serde_json::Value; use std::{env, fs, io, sync}; -#[test] -fn roundtrip_tls() { - use native_tls::{Certificate, TlsConnector}; +#[tokio::test(flavor = "multi_thread")] +async fn roundtrip_tls() { + use tokio_rustls::rustls::{ClientConfig, RootCertStore}; // We are utilizing the fact that the "FAKTORY_URL_SECURE" environment variable is set // as an indicator that the integration test can and should be performed. @@ -28,10 +28,12 @@ fn roundtrip_tls() { let mut c = ConsumerBuilder::default(); c.hostname("tester".to_string()).wid(local.to_string()); { - let tx = sync::Arc::clone(&tx); - c.register(local, move |j| -> io::Result<()> { - tx.lock().unwrap().send(j).unwrap(); - Ok(()) + c.register(local, move |j| { + let tx = sync::Arc::clone(&tx); + Box::pin(async move { + tx.lock().unwrap().send(j).unwrap(); + Ok::<(), io::Error>(()) + }) }); } @@ -40,32 +42,39 @@ fn roundtrip_tls() { .join("docker") .join("certs") .join("faktory.local.crt"); - let cert = fs::read_to_string(cert_path).unwrap(); + let cert = fs::read(cert_path).unwrap(); - let tls = || { - let connector = if cfg!(target_os = "macos") { - TlsConnector::builder() - // Danger! Only for testing! - // On the macos CI runner, the certs are not trusted: - // { code: -67843, message: "The certificate was not trusted." } - .danger_accept_invalid_certs(true) - .build() - .unwrap() - } else { - let cert = Certificate::from_pem(cert.as_bytes()).unwrap(); - TlsConnector::builder() - .add_root_certificate(cert) - .build() - .unwrap() - }; - TlsStream::with_connector(connector, Some(&env::var("FAKTORY_URL_SECURE").unwrap())) + let tls = || async { + // let connector = if cfg!(target_os = "macos") { + // TlsConnector::builder() + // // Danger! Only for testing! + // // On the macos CI runner, the certs are not trusted: + // // { code: -67843, message: "The certificate was not trusted." } + // .danger_accept_invalid_certs(true) + // .build() + // .unwrap() + // } else { + // let cert = Certificate::from_pem(cert.as_bytes()).unwrap(); + // TlsConnector::builder() + // .add_root_certificate(cert) + // .build() + // .unwrap() + // }; + let mut store = RootCertStore::empty(); + store.add(cert.clone().into()).unwrap(); + let conf = ClientConfig::builder() + .with_root_certificates(store) + .with_no_client_auth(); + TlsStream::with_client_config(conf, Some(&env::var("FAKTORY_URL_SECURE").unwrap())) + .await .unwrap() }; - let mut c = c.connect_with(tls(), None).unwrap(); - let mut p = Producer::connect_with(tls(), None).unwrap(); + let mut c = c.connect_with(tls().await, None).await.unwrap(); + let mut p = Producer::connect_with(tls().await, None).await.unwrap(); p.enqueue(Job::new(local, vec!["z"]).on_queue(local)) + .await .unwrap(); - c.run_one(0, &[local]).unwrap(); + c.run_one(0, &[local]).await.unwrap(); let job = rx.recv().unwrap(); assert_eq!(job.queue, local); From cbeb2ce2a8a9be45c28e42e88b08c8bbbcddb8fb Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sat, 24 Feb 2024 17:16:53 +0500 Subject: [PATCH 002/175] Use x509-parser for tls test. Add test verifier --- .gitignore | 2 +- Cargo.lock | 218 +++++++++++++++++++++++++++++++++++++++ Cargo.toml | 1 + tests/real/enterprise.rs | 6 -- tests/tls.rs | 124 ++++++++++++++++------ 5 files changed, 312 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index 67b3c5c6..0f735146 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /target/ **/*.rs.bk perf.* -.vscode \ No newline at end of file +.vscode diff --git a/Cargo.lock b/Cargo.lock index d1488183..e6f1ab2b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -80,6 +80,45 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "async-stream" version = "0.3.5" @@ -273,6 +312,35 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "data-encoding" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "derive_builder" version = "0.12.0" @@ -314,6 +382,17 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.50", +] + [[package]] name = "faktory" version = "0.12.5" @@ -336,6 +415,7 @@ dependencies = [ "tokio-rustls", "tokio-test", "url", + "x509-parser", ] [[package]] @@ -457,6 +537,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + [[package]] name = "libc" version = "0.2.153" @@ -481,6 +567,12 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.7.2" @@ -501,6 +593,42 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.18" @@ -529,6 +657,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" version = "1.19.0" @@ -567,6 +704,12 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -642,6 +785,15 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustls" version = "0.22.2" @@ -777,6 +929,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + [[package]] name = "thiserror" version = "1.0.57" @@ -797,6 +961,37 @@ dependencies = [ "syn 2.0.50", ] +[[package]] +name = "time" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -902,6 +1097,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "untrusted" version = "0.9.0" @@ -1154,6 +1355,23 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +[[package]] +name = "x509-parser" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + [[package]] name = "zeroize" version = "1.7.0" diff --git a/Cargo.toml b/Cargo.toml index 3929cee4..ad404475 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,6 +51,7 @@ url = "2" [dev-dependencies] tokio = { version = "1.35.1", features = ["rt", "macros"] } tokio-test = "0.4.3" +x509-parser = "0.15.1" [[bin]] name = "loadtest" diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index f3620657..fa2f6b54 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -176,14 +176,8 @@ async fn ent_unique_job() { .unique_for(unique_for_secs) .build(); // ... so the server will accept it: - p.enqueue(job2).await.unwrap(); - let had_job = c.run_one(0, &[queue_name]).await.unwrap(); - assert!(had_job); - let had_another_one = c.run_one(0, &[queue_name]).await.unwrap(); - assert!(had_another_one); - assert_had_one!(&mut c, queue_name); assert_had_one!(&mut c, queue_name); // and the queue is empty again: diff --git a/tests/tls.rs b/tests/tls.rs index 2811209b..e851a0cd 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -2,12 +2,15 @@ use faktory::*; use serde_json::Value; -use std::{env, fs, io, sync}; +use std::{ + env, io, + sync::{self, Arc}, +}; +use tokio_rustls::rustls::ClientConfig; +use tokio_rustls::rustls::SignatureScheme; #[tokio::test(flavor = "multi_thread")] async fn roundtrip_tls() { - use tokio_rustls::rustls::{ClientConfig, RootCertStore}; - // We are utilizing the fact that the "FAKTORY_URL_SECURE" environment variable is set // as an indicator that the integration test can and should be performed. // @@ -37,38 +40,28 @@ async fn roundtrip_tls() { }); } - let cert_path = env::current_dir() - .unwrap() - .join("docker") - .join("certs") - .join("faktory.local.crt"); - let cert = fs::read(cert_path).unwrap(); - let tls = || async { - // let connector = if cfg!(target_os = "macos") { - // TlsConnector::builder() - // // Danger! Only for testing! - // // On the macos CI runner, the certs are not trusted: - // // { code: -67843, message: "The certificate was not trusted." } - // .danger_accept_invalid_certs(true) - // .build() - // .unwrap() - // } else { - // let cert = Certificate::from_pem(cert.as_bytes()).unwrap(); - // TlsConnector::builder() - // .add_root_certificate(cert) - // .build() - // .unwrap() - // }; - let mut store = RootCertStore::empty(); - store.add(cert.clone().into()).unwrap(); - let conf = ClientConfig::builder() - .with_root_certificates(store) + let verifier = fixtures::TestServerCertVerifier::new( + SignatureScheme::RSA_PSS_SHA512, + env::current_dir() + .unwrap() + .join("docker") + .join("certs") + .join("faktory.local.crt"), + ); + let client_config = ClientConfig::builder() + .dangerous() + .with_custom_certificate_verifier(Arc::new(verifier)) .with_no_client_auth(); - TlsStream::with_client_config(conf, Some(&env::var("FAKTORY_URL_SECURE").unwrap())) - .await - .unwrap() + + TlsStream::with_client_config( + client_config, + Some(&env::var("FAKTORY_URL_SECURE").unwrap()), + ) + .await + .unwrap() }; + let mut c = c.connect_with(tls().await, None).await.unwrap(); let mut p = Producer::connect_with(tls().await, None).await.unwrap(); p.enqueue(Job::new(local, vec!["z"]).on_queue(local)) @@ -81,3 +74,70 @@ async fn roundtrip_tls() { assert_eq!(job.kind(), local); assert_eq!(job.args(), &[Value::from("z")]); } + +mod fixtures { + #![allow(unused_variables)] + + use std::fs; + use std::path::PathBuf; + + use tokio_rustls::rustls::client::danger::{ + HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier, + }; + use tokio_rustls::rustls::pki_types::{CertificateDer, ServerName, UnixTime}; + use tokio_rustls::rustls::DigitallySignedStruct; + use tokio_rustls::rustls::Error as RustlsError; + use tokio_rustls::rustls::SignatureScheme; + use x509_parser::pem::parse_x509_pem; + + #[derive(Debug)] + pub(super) struct TestServerCertVerifier<'a> { + scheme: SignatureScheme, + cert_der: CertificateDer<'a>, + } + + impl TestServerCertVerifier<'_> { + pub(super) fn new(scheme: SignatureScheme, cert_path: PathBuf) -> Self { + let cert = fs::read(&cert_path).unwrap(); + let (_, pem) = parse_x509_pem(&cert).unwrap(); + let cert_der = CertificateDer::try_from(pem.contents).unwrap(); + Self { scheme, cert_der } + } + } + + impl ServerCertVerifier for TestServerCertVerifier<'_> { + fn verify_server_cert( + &self, + end_entity: &CertificateDer<'_>, + intermediates: &[CertificateDer<'_>], + server_name: &ServerName<'_>, + ocsp_response: &[u8], + now: UnixTime, + ) -> Result { + assert_eq!(&self.cert_der, end_entity); + Ok(ServerCertVerified::assertion()) + } + + fn verify_tls12_signature( + &self, + message: &[u8], + cert: &CertificateDer<'_>, + dss: &DigitallySignedStruct, + ) -> Result { + Ok(HandshakeSignatureValid::assertion()) + } + + fn verify_tls13_signature( + &self, + message: &[u8], + cert: &CertificateDer<'_>, + dss: &DigitallySignedStruct, + ) -> Result { + Ok(HandshakeSignatureValid::assertion()) + } + + fn supported_verify_schemes(&self) -> Vec { + vec![self.scheme] + } + } +} From a3b99c423f508f2159445d237a94c9da664fd769 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sat, 24 Feb 2024 18:12:49 +0500 Subject: [PATCH 003/175] Make minimal versions pass again --- Cargo.lock | 911 +++++++++++++++++++++++------------------------------ Cargo.toml | 6 + 2 files changed, 396 insertions(+), 521 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e6f1ab2b..e576899b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,39 +4,24 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" dependencies = [ "gimli", ] [[package]] name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] +checksum = "6aa100a6f6f525226719f8de3f70076be4f4191801ebd92621450d1c51e9053d" [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "bff2cf94a3dbe2d57cbd56485e1bd7436455058034d6c2d47be51d4e5e4bc6ab" dependencies = [ "anstyle", "anstyle-parse", @@ -48,63 +33,63 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "0238ca56c96dfa37bdf7c373c8886dd591322500aceeeccdb2216fe06dc2f796" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "asn1-rs" -version = "0.5.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +checksum = "e577111f9ca51289da894bcb4b17047737218c2e4477ea2fc36cd3922172062f" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", "displaydoc", "nom", - "num-traits", + "num-traits 0.2.14", "rusticata-macros", "thiserror", - "time", + "time 0.3.7", ] [[package]] name = "asn1-rs-derive" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +checksum = "6b9002415e8baa0177a3ae0946fb62ca6e9e470755717409134e44d8e0ae2cad" dependencies = [ "proc-macro2", - "quote", - "syn 1.0.109", + "quote 1.0.35", + "syn 1.0.91", "synstructure", ] @@ -115,30 +100,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2", - "quote", - "syn 1.0.109", + "quote 1.0.35", + "syn 1.0.91", ] [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite", ] [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" dependencies = [ "proc-macro2", - "quote", - "syn 2.0.50", + "quote 1.0.35", + "syn 1.0.91", ] [[package]] @@ -148,25 +132,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", - "quote", - "syn 2.0.50", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "88fb5a785d6b44fd9d6700935608639af1b8356de1e55d5f7c2740f4faa15d82" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object", @@ -175,30 +159,30 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "03588e54c62ae6d763e2a80090d50353b785795361b4ff5b3bf0a5097fc31c0b" dependencies = [ "generic-array", ] [[package]] -name = "bumpalo" -version = "3.15.1" +name = "bytes" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c764d619ca78fccbf3069b37bd7af92577f044bb15236036662d79b6559f25b7" +checksum = "ad1f8e949d755f9d79112b5bb46938e0ef9d3804a0b16dfab13aafcaa5f0fa72" [[package]] -name = "bytes" -version = "1.5.0" +name = "cc" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" [[package]] -name = "cc" -version = "1.0.86" +name = "cfg-if" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730" +checksum = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de" [[package]] name = "cfg-if" @@ -208,43 +192,42 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "1cce36c92cb605414e9b824f866f5babe0a0368e39ea07393b9b63cf3844c0e6" dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", + "num-integer", + "num-traits 0.2.14", "serde", - "windows-targets 0.52.0", + "time 0.1.36", ] [[package]] name = "clap" -version = "4.5.1" +version = "4.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] name = "colorchoice" @@ -252,36 +235,29 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "a4600d695eb3f6ce1cd44e6e291adceb2cc3ab12f20a33777ecd0bf6eba34e06" dependencies = [ "generic-array", - "typenum", ] [[package]] name = "darling" -version = "0.14.4" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "f1a5d2e8b5a94b2261efb20e99a01255b9c5293797d69bbf04600567b2f9b8d7" dependencies = [ "darling_core", "darling_macro", @@ -289,58 +265,49 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "8f1c7d56716be82d9c6adb967cfe700955179ea88806e898483dad6987330a54" dependencies = [ "fnv", "ident_case", "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "quote 1.0.35", + "strsim", + "syn 1.0.91", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "64dd7e5a75a00cb6799ae9fbbfc3bba0134def6579a9e27564e72c839c837bed" dependencies = [ "darling_core", - "quote", - "syn 1.0.109", + "quote 1.0.35", + "syn 1.0.91", ] [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" [[package]] name = "der-parser" -version = "8.2.0" +version = "8.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" dependencies = [ "asn1-rs", "displaydoc", "nom", "num-bigint", - "num-traits", + "num-traits 0.2.14", "rusticata-macros", ] -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", -] - [[package]] name = "derive_builder" version = "0.12.0" @@ -358,8 +325,8 @@ checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" dependencies = [ "darling", "proc-macro2", - "quote", - "syn 1.0.109", + "quote 1.0.35", + "syn 1.0.91", ] [[package]] @@ -369,14 +336,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" dependencies = [ "derive_builder_core", - "syn 1.0.109", + "syn 1.0.91", ] [[package]] name = "digest" -version = "0.10.7" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "8cb780dce4f9a8f5c087362b3a4595936b2019e7c8b30f2c3e9a7e94e6ae9837" dependencies = [ "block-buffer", "crypto-common", @@ -384,15 +351,21 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "278ef1934318d524612205f69df005eea30ec10edf7913e500b5a527fce55bc0" dependencies = [ "proc-macro2", - "quote", - "syn 2.0.50", + "quote 1.0.35", + "syn 1.0.91", ] +[[package]] +name = "dtoa" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5edd69c67b2f8e0911629b7e6b8a34cb3956613cd7c6e6414966dee349c2db4f" + [[package]] name = "faktory" version = "0.12.5" @@ -404,8 +377,11 @@ dependencies = [ "fnv", "hostname", "libc", + "num-bigint", + "oid-registry", "pin-project", "rand", + "rustls", "serde", "serde_derive", "serde_json", @@ -424,26 +400,17 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "30f0ab78f035d7ed5d52689f4b05a56c15ad80097f1d860e644bdc9dba3831f2" [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" dependencies = [ "typenum", "version_check", @@ -451,59 +418,30 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi", ] [[package]] name = "gimli" -version = "0.28.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[package]] -name = "hermit-abi" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" [[package]] name = "hostname" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "01b1af8d6d068ba9de1c39c6ff0d879aed20f74873d4d3929a4535000bb07886" dependencies = [ "libc", "match_cfg", - "winapi", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", + "winapi 0.3.0", ] [[package]] @@ -514,27 +452,35 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" dependencies = [ + "matches", "unicode-bidi", "unicode-normalization", ] [[package]] name = "itoa" -version = "1.0.10" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "91fd9dc2c587067de817fec4ad355e3818c3d893a78cab32a0a474c7a15bb8d5" [[package]] -name = "js-sys" -version = "0.3.68" +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + +[[package]] +name = "kernel32-sys" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "ad1ca084b49bfd975182288e1a5f1d27ea34ff2d6ae084ae5e66e1652427eada" dependencies = [ - "wasm-bindgen", + "winapi 0.2.4", + "winapi-build", ] [[package]] @@ -545,15 +491,18 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "log" -version = "0.4.20" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "cba860f648db8e6f269df990180c2217f333472b4a6e901e97446858487971e2" +dependencies = [ + "cfg-if 0.1.2", +] [[package]] name = "match_cfg" @@ -561,102 +510,118 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +[[package]] +name = "matches" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15305656809ce5a4805b1ff2946892810992197ce1270ff79baded852187942e" + [[package]] name = "memchr" -version = "2.7.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "e01e64d9017d18e7fc09d8e4fe0e28ff6931019e979fb8019319db7ca827f8a6" +dependencies = [ + "libc", +] [[package]] name = "minimal-lexical" -version = "0.2.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +checksum = "6595bb28ed34f43c3fe088e48f6cfb2e033cab45f25a5384d5fdf564fbc8c4b2" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.10" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "nom" -version = "7.1.3" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "7ffd9d26838a953b4af82cbeb9f1592c6798916983959be223a7124e992742c1" dependencies = [ "memchr", "minimal-lexical", + "version_check", ] [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535" dependencies = [ "autocfg", "num-integer", - "num-traits", + "num-traits 0.2.14", ] -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - [[package]] name = "num-integer" -version = "0.1.46" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" dependencies = [ - "num-traits", + "autocfg", + "num-traits 0.2.14", ] [[package]] name = "num-traits" -version = "0.2.18" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "51eab148f171aefad295f8cece636fc488b9b392ef544da31ea4b8ef6b9e9c39" + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" dependencies = [ - "hermit-abi", "libc", ] [[package]] -name = "object" -version = "0.32.2" +name = "num_threads" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "71a1eb3a36534514077c1e079ada2fb170ef30c47d203aa6916138cf882ecd52" dependencies = [ - "memchr", + "libc", ] +[[package]] +name = "object" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" + [[package]] name = "oid-registry" version = "0.6.1" @@ -666,17 +631,11 @@ dependencies = [ "asn1-rs", ] -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "ba4f28a6faf4ffea762ba8f4baef48c61a6db348647c73095034041fc79dd954" [[package]] name = "pin-project" @@ -694,37 +653,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", - "quote", - "syn 2.0.50", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "powerfmt" -version = "0.2.0" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +checksum = "2c516611246607d0c04186886dbb3a754368ef82c79e9827a802c6d836dd111c" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" dependencies = [ "unicode-ident", ] +[[package]] +name = "quote" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f0fc799e40f2a2c2be239825b30b686f1bd1d2e0e3d5e943b14c1380db49acf" + [[package]] name = "quote" version = "1.0.35" @@ -736,20 +695,21 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "a76330fb486679b4ace3670f117bbc9e16204005c4bde9c4bd372f45bed34f12" dependencies = [ "libc", "rand_chacha", "rand_core", + "rand_hc", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", "rand_core", @@ -757,48 +717,62 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" dependencies = [ "getrandom", ] +[[package]] +name = "rand_hc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +dependencies = [ + "rand_core", +] + +[[package]] +name = "redox_syscall" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a48131ab10dbeb17202bd1dcb9c9798963a58a50c9ec31640f237358832094" + [[package]] name = "ring" -version = "0.17.8" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "fb9d44f9bf6b635117787f72416783eb7e4227aaf255e5ce739563d817176a7e" dependencies = [ "cc", - "cfg-if", "getrandom", "libc", "spin", "untrusted", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "3058a43ada2c2d0b92b3ae38007a2d0fa5e9db971be260e0171408a4ff471c95" [[package]] name = "rusticata-macros" -version = "4.1.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +checksum = "65c52377bb2288aa522a0c8208947fada1e0c76397f108cc08f57efe6077b50d" dependencies = [ "nom", ] [[package]] name = "rustls" -version = "0.22.2" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +checksum = "fe6b63262c9fcac8659abfaa96cac103d28166d3ff3eaf8f412e19f3ae9e5a48" dependencies = [ "log", "ring", @@ -810,15 +784,15 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" +checksum = "eb0a1f9b9efec70d32e6d6aa3e58ebd88c3754ec98dfe9145c63cf54cc829b83" [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "de2635c8bc2b88d367767c5de8ea1d8db9af3f6219eba28442242d9ab81d1b89" dependencies = [ "ring", "rustls-pki-types", @@ -826,49 +800,51 @@ dependencies = [ ] [[package]] -name = "ryu" -version = "1.0.17" +name = "serde" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "369633cfe0f0bde1dfc037fb6c5a329d46586a31f981bed14d87487a3439ae37" [[package]] -name = "serde" -version = "1.0.197" +name = "serde_derive" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "6a61ecb8511aaff381424f98b49a059017420ec60e15e8d63b645701af7fa9b8" dependencies = [ - "serde_derive", + "quote 0.3.8", + "serde_derive_internals", + "syn 0.11.10", ] [[package]] -name = "serde_derive" -version = "1.0.197" +name = "serde_derive_internals" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "021c338d22c7e30f957a6ab7e388cb6098499dda9fd4ba1661ee074ca7a180d1" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.50", + "syn 0.11.10", + "synom", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "e9b1ec939469a124b27e208106550c38358ed4334d2b1b5b3825bc1ee37d946a" dependencies = [ - "itoa", - "ryu", + "dtoa", + "itoa 0.3.0", + "num-traits 0.1.32", "serde", ] [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] @@ -880,14 +856,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "spin" -version = "0.9.8" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5" [[package]] name = "strsim" @@ -895,12 +871,6 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "strsim" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" - [[package]] name = "subtle" version = "2.5.0" @@ -909,109 +879,113 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "1.0.109" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "171b739972d9a1bfb169e8077238b51f9ebeaae4ff6e08072f7ba386a8802da2" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "quote 0.3.8", + "synom", + "unicode-xid 0.0.4", ] [[package]] name = "syn" -version = "2.0.50" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" +checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" dependencies = [ "proc-macro2", - "quote", - "unicode-ident", + "quote 1.0.35", + "unicode-xid 0.2.0", ] [[package]] -name = "synstructure" -version = "0.12.6" +name = "syn" +version = "2.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" dependencies = [ "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", + "quote 1.0.35", + "unicode-ident", ] [[package]] -name = "thiserror" -version = "1.0.57" +name = "synom" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "8fece1853fb872b0acdc3ff88f37c474018e125ef81cd4cb8c0ca515746b62ed" dependencies = [ - "thiserror-impl", + "unicode-xid 0.0.4", ] [[package]] -name = "thiserror-impl" -version = "1.0.57" +name = "synstructure" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "affc27d5f1764f7487bafeb41e380664790716e38ba45d8487bddcc53e79f0f6" dependencies = [ "proc-macro2", - "quote", - "syn 2.0.50", + "quote 1.0.35", + "syn 1.0.91", + "unicode-xid 0.1.0", ] [[package]] -name = "time" -version = "0.3.34" +name = "thiserror" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", + "thiserror-impl", ] [[package]] -name = "time-core" -version = "0.1.2" +name = "thiserror-impl" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +dependencies = [ + "proc-macro2", + "quote 1.0.35", + "syn 1.0.91", +] [[package]] -name = "time-macros" -version = "0.2.17" +name = "time" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "211b63c112206356ef1ff9b19355f43740fc3f85960c598a93d3a3d3ba7beade" dependencies = [ - "num-conv", - "time-core", + "kernel32-sys", + "libc", + "redox_syscall", + "winapi 0.2.4", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "time" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d" dependencies = [ - "tinyvec_macros", + "itoa 1.0.1", + "libc", + "num_threads", + "time-macros", ] [[package]] -name = "tinyvec_macros" -version = "0.1.1" +name = "time-macros" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "25eb0ca3468fc0acc11828786797f6ef9aa1555e4a211a60d64cc8e4d1be47d6" [[package]] name = "tokio" -version = "1.36.0" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ "backtrace", "bytes", @@ -1021,7 +995,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1031,8 +1005,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", - "quote", - "syn 2.0.50", + "quote 1.0.35", + "syn 2.0.46", ] [[package]] @@ -1048,9 +1022,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "e4cdeb73537e63f98adcd73138af75e3f368ccaecffaa29d7eb61b9f5a440457" dependencies = [ "futures-core", "pin-project-lite", @@ -1072,36 +1046,48 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "2560b941fdb9ea38301b9b708504d612fcdf9c91a8c31d82219bd74cb07d304d" +dependencies = [ + "matches", +] [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] +checksum = "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" [[package]] name = "untrusted" @@ -1111,12 +1097,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "77ddaf52e65c6b81c56b7e957c0b1970f7937f21c5c6774c4e56fcb4e20b48c6" dependencies = [ - "form_urlencoded", "idna", + "matches", "percent-encoding", ] @@ -1128,9 +1114,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "45d3d553fd9413fffe7147a20171d640eda0ad4c070acd7d0c885a21bcd2e8b7" [[package]] name = "wasi" @@ -1139,89 +1125,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasm-bindgen" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.50", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.50", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.91" +name = "winapi" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "5350e40d908c7e8b9e5c9edb541ca47cc617c6229d3575a46da6f550f36c96fd" [[package]] name = "winapi" -version = "0.3.9" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "b3ad91d846a4a5342c1fb7008d26124ee6cf94a3953751618577295373b32117" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "winapi-build" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "winapi-i686-pc-windows-gnu" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "a16a8e2ebfc883e2b1771c6482b1fb3c6831eab289ba391619a2d93a7356220f" [[package]] -name = "windows-core" -version = "0.52.0" +name = "winapi-x86_64-pc-windows-gnu" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.0", -] +checksum = "8ca29cb03c8ceaf20f8224a18a530938305e9872b1478ea24ff44b4f503a1d1d" [[package]] name = "windows-sys" @@ -1229,131 +1164,65 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.0", + "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "x509-parser" @@ -1369,11 +1238,11 @@ dependencies = [ "oid-registry", "rusticata-macros", "thiserror", - "time", + "time 0.3.7", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" diff --git a/Cargo.toml b/Cargo.toml index ad404475..5d8a1a88 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,6 +53,12 @@ tokio = { version = "1.35.1", features = ["rt", "macros"] } tokio-test = "0.4.3" x509-parser = "0.15.1" +# to make -Zminimal-versions work +[target.'cfg(test)'.dependencies] +rustls = "0.22.1" +num-bigint = "0.4.2" +oid-registry = "0.6.1" + [[bin]] name = "loadtest" path = "src/bin/loadtest.rs" From 7ab8ab30f8dbcc5a093cf8aea908b37cda79e500 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sat, 24 Feb 2024 18:17:16 +0500 Subject: [PATCH 004/175] Comment out Openssl installation on windows in CI --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4adb2d78..b42d5e73 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -110,10 +110,10 @@ jobs: os: [macos-latest, windows-latest] steps: # if your project needs OpenSSL, uncomment this to fix Windows builds. - - run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append - if: runner.os == 'Windows' - - run: vcpkg install openssl:x64-windows-static-md - if: runner.os == 'Windows' + # - run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append + # if: runner.os == 'Windows' + # - run: vcpkg install openssl:x64-windows-static-md + # if: runner.os == 'Windows' - uses: actions/checkout@v4 with: submodules: true From e6b3a4c3c0e702680de961ca6f97e986386d852d Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sat, 24 Feb 2024 18:21:05 +0500 Subject: [PATCH 005/175] Revert "Comment out Openssl installation on windows in CI" This reverts commit 7ab8ab30f8dbcc5a093cf8aea908b37cda79e500. --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b42d5e73..4adb2d78 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -110,10 +110,10 @@ jobs: os: [macos-latest, windows-latest] steps: # if your project needs OpenSSL, uncomment this to fix Windows builds. - # - run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append - # if: runner.os == 'Windows' - # - run: vcpkg install openssl:x64-windows-static-md - # if: runner.os == 'Windows' + - run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append + if: runner.os == 'Windows' + - run: vcpkg install openssl:x64-windows-static-md + if: runner.os == 'Windows' - uses: actions/checkout@v4 with: submodules: true From ab38bfc300d1e914ccdcb6d6a0717286568b0bf4 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sat, 24 Feb 2024 22:37:10 +0500 Subject: [PATCH 006/175] Restore patch version. Comment out OpenSSL install on CI --- .github/workflows/test.yml | 8 +- Cargo.lock | 908 +++++++++++++++++++++---------------- Cargo.toml | 2 +- 3 files changed, 526 insertions(+), 392 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4adb2d78..b42d5e73 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -110,10 +110,10 @@ jobs: os: [macos-latest, windows-latest] steps: # if your project needs OpenSSL, uncomment this to fix Windows builds. - - run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append - if: runner.os == 'Windows' - - run: vcpkg install openssl:x64-windows-static-md - if: runner.os == 'Windows' + # - run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append + # if: runner.os == 'Windows' + # - run: vcpkg install openssl:x64-windows-static-md + # if: runner.os == 'Windows' - uses: actions/checkout@v4 with: submodules: true diff --git a/Cargo.lock b/Cargo.lock index e576899b..0c1dd7f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,24 +4,39 @@ version = 3 [[package]] name = "addr2line" -version = "0.14.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] [[package]] name = "adler" -version = "0.2.1" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aa100a6f6f525226719f8de3f70076be4f4191801ebd92621450d1c51e9053d" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] [[package]] name = "anstream" -version = "0.6.0" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff2cf94a3dbe2d57cbd56485e1bd7436455058034d6c2d47be51d4e5e4bc6ab" +checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" dependencies = [ "anstyle", "anstyle-parse", @@ -33,63 +48,63 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.0" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0238ca56c96dfa37bdf7c373c8886dd591322500aceeeccdb2216fe06dc2f796" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "asn1-rs" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e577111f9ca51289da894bcb4b17047737218c2e4477ea2fc36cd3922172062f" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", "displaydoc", "nom", - "num-traits 0.2.14", + "num-traits", "rusticata-macros", "thiserror", - "time 0.3.7", + "time", ] [[package]] name = "asn1-rs-derive" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9002415e8baa0177a3ae0946fb62ca6e9e470755717409134e44d8e0ae2cad" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ "proc-macro2", - "quote 1.0.35", - "syn 1.0.91", + "quote", + "syn 1.0.109", "synstructure", ] @@ -100,29 +115,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2", - "quote 1.0.35", - "syn 1.0.91", + "quote", + "syn 1.0.109", ] [[package]] name = "async-stream" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", + "pin-project-lite", ] [[package]] name = "async-stream-impl" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", - "quote 1.0.35", - "syn 1.0.91", + "quote", + "syn 2.0.50", ] [[package]] @@ -132,25 +148,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", - "quote 1.0.35", - "syn 2.0.46", + "quote", + "syn 2.0.50", ] [[package]] name = "autocfg" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.58" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88fb5a785d6b44fd9d6700935608639af1b8356de1e55d5f7c2740f4faa15d82" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "miniz_oxide", "object", @@ -159,30 +175,30 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.1" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03588e54c62ae6d763e2a80090d50353b785795361b4ff5b3bf0a5097fc31c0b" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] [[package]] -name = "bytes" -version = "1.0.0" +name = "bumpalo" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1f8e949d755f9d79112b5bb46938e0ef9d3804a0b16dfab13aafcaa5f0fa72" +checksum = "c764d619ca78fccbf3069b37bd7af92577f044bb15236036662d79b6559f25b7" [[package]] -name = "cc" -version = "1.0.69" +name = "bytes" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] -name = "cfg-if" -version = "0.1.2" +name = "cc" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de" +checksum = "7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730" [[package]] name = "cfg-if" @@ -192,42 +208,43 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.2" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cce36c92cb605414e9b824f866f5babe0a0368e39ea07393b9b63cf3844c0e6" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ - "num-integer", - "num-traits 0.2.14", + "android-tzdata", + "iana-time-zone", + "num-traits", "serde", - "time 0.1.36", + "windows-targets 0.52.0", ] [[package]] name = "clap" -version = "4.4.10" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.4.9" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim", + "strsim 0.11.0", ] [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "colorchoice" @@ -235,29 +252,36 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crypto-common" -version = "0.1.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4600d695eb3f6ce1cd44e6e291adceb2cc3ab12f20a33777ecd0bf6eba34e06" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", + "typenum", ] [[package]] name = "darling" -version = "0.14.0" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a5d2e8b5a94b2261efb20e99a01255b9c5293797d69bbf04600567b2f9b8d7" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ "darling_core", "darling_macro", @@ -265,49 +289,58 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.0" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1c7d56716be82d9c6adb967cfe700955179ea88806e898483dad6987330a54" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", "proc-macro2", - "quote 1.0.35", - "strsim", - "syn 1.0.91", + "quote", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] name = "darling_macro" -version = "0.14.0" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64dd7e5a75a00cb6799ae9fbbfc3bba0134def6579a9e27564e72c839c837bed" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", - "quote 1.0.35", - "syn 1.0.91", + "quote", + "syn 1.0.109", ] [[package]] name = "data-encoding" -version = "2.2.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "der-parser" -version = "8.1.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ "asn1-rs", "displaydoc", "nom", "num-bigint", - "num-traits 0.2.14", + "num-traits", "rusticata-macros", ] +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "derive_builder" version = "0.12.0" @@ -325,8 +358,8 @@ checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" dependencies = [ "darling", "proc-macro2", - "quote 1.0.35", - "syn 1.0.91", + "quote", + "syn 1.0.109", ] [[package]] @@ -336,14 +369,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" dependencies = [ "derive_builder_core", - "syn 1.0.91", + "syn 1.0.109", ] [[package]] name = "digest" -version = "0.10.2" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb780dce4f9a8f5c087362b3a4595936b2019e7c8b30f2c3e9a7e94e6ae9837" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", @@ -351,21 +384,15 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278ef1934318d524612205f69df005eea30ec10edf7913e500b5a527fce55bc0" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", - "quote 1.0.35", - "syn 1.0.91", + "quote", + "syn 2.0.50", ] -[[package]] -name = "dtoa" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5edd69c67b2f8e0911629b7e6b8a34cb3956613cd7c6e6414966dee349c2db4f" - [[package]] name = "faktory" version = "0.12.5" @@ -400,17 +427,26 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + [[package]] name = "futures-core" -version = "0.3.0" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30f0ab78f035d7ed5d52689f4b05a56c15ad80097f1d860e644bdc9dba3831f2" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "generic-array" -version = "0.14.4" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -418,30 +454,59 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi", ] [[package]] name = "gimli" -version = "0.23.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "hermit-abi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" [[package]] name = "hostname" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b1af8d6d068ba9de1c39c6ff0d879aed20f74873d4d3929a4535000bb07886" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ "libc", "match_cfg", - "winapi 0.3.0", + "winapi", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", ] [[package]] @@ -452,35 +517,27 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.2.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] [[package]] name = "itoa" -version = "0.3.0" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fd9dc2c587067de817fec4ad355e3818c3d893a78cab32a0a474c7a15bb8d5" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] -name = "itoa" -version = "1.0.1" +name = "js-sys" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" - -[[package]] -name = "kernel32-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1ca084b49bfd975182288e1a5f1d27ea34ff2d6ae084ae5e66e1652427eada" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" dependencies = [ - "winapi 0.2.4", - "winapi-build", + "wasm-bindgen", ] [[package]] @@ -491,18 +548,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.149" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "log" -version = "0.4.4" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cba860f648db8e6f269df990180c2217f333472b4a6e901e97446858487971e2" -dependencies = [ - "cfg-if 0.1.2", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "match_cfg" @@ -510,118 +564,102 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" -[[package]] -name = "matches" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15305656809ce5a4805b1ff2946892810992197ce1270ff79baded852187942e" - [[package]] name = "memchr" -version = "2.0.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01e64d9017d18e7fc09d8e4fe0e28ff6931019e979fb8019319db7ca827f8a6" -dependencies = [ - "libc", -] +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "minimal-lexical" -version = "0.1.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6595bb28ed34f43c3fe088e48f6cfb2e033cab45f25a5384d5fdf564fbc8c4b2" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.4.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "nom" -version = "7.0.0" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffd9d26838a953b4af82cbeb9f1592c6798916983959be223a7124e992742c1" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", - "version_check", ] [[package]] name = "num-bigint" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.14", + "num-traits", ] [[package]] -name = "num-integer" -version = "0.1.42" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" -dependencies = [ - "autocfg", - "num-traits 0.2.14", -] +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "num-traits" -version = "0.1.32" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51eab148f171aefad295f8cece636fc488b9b392ef544da31ea4b8ef6b9e9c39" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] [[package]] name = "num-traits" -version = "0.2.14" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.8.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ + "hermit-abi", "libc", ] [[package]] -name = "num_threads" -version = "0.1.2" +name = "object" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71a1eb3a36534514077c1e079ada2fb170ef30c47d203aa6916138cf882ecd52" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ - "libc", + "memchr", ] -[[package]] -name = "object" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" - [[package]] name = "oid-registry" version = "0.6.1" @@ -631,11 +669,17 @@ dependencies = [ "asn1-rs", ] +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + [[package]] name = "percent-encoding" -version = "2.0.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f28a6faf4ffea762ba8f4baef48c61a6db348647c73095034041fc79dd954" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" @@ -653,37 +697,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", - "quote 1.0.35", - "syn 2.0.46", + "quote", + "syn 2.0.50", ] [[package]] name = "pin-project-lite" -version = "0.2.11" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "powerfmt" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c516611246607d0c04186886dbb3a754368ef82c79e9827a802c6d836dd111c" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.8" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.74" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] -[[package]] -name = "quote" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f0fc799e40f2a2c2be239825b30b686f1bd1d2e0e3d5e943b14c1380db49acf" - [[package]] name = "quote" version = "1.0.35" @@ -695,21 +739,20 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.0" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76330fb486679b4ace3670f117bbc9e16204005c4bde9c4bd372f45bed34f12" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", "rand_core", - "rand_hc", ] [[package]] name = "rand_chacha" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", @@ -717,62 +760,48 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" -dependencies = [ - "rand_core", -] - -[[package]] -name = "redox_syscall" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a48131ab10dbeb17202bd1dcb9c9798963a58a50c9ec31640f237358832094" - [[package]] name = "ring" -version = "0.17.0" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb9d44f9bf6b635117787f72416783eb7e4227aaf255e5ce739563d817176a7e" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin", "untrusted", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "rustc-demangle" -version = "0.1.4" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3058a43ada2c2d0b92b3ae38007a2d0fa5e9db971be260e0171408a4ff471c95" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rusticata-macros" -version = "4.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65c52377bb2288aa522a0c8208947fada1e0c76397f108cc08f57efe6077b50d" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ "nom", ] [[package]] name = "rustls" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6b63262c9fcac8659abfaa96cac103d28166d3ff3eaf8f412e19f3ae9e5a48" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" dependencies = [ "log", "ring", @@ -784,15 +813,15 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.0.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb0a1f9b9efec70d32e6d6aa3e58ebd88c3754ec98dfe9145c63cf54cc829b83" +checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" [[package]] name = "rustls-webpki" -version = "0.102.0" +version = "0.102.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de2635c8bc2b88d367767c5de8ea1d8db9af3f6219eba28442242d9ab81d1b89" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" dependencies = [ "ring", "rustls-pki-types", @@ -800,51 +829,49 @@ dependencies = [ ] [[package]] -name = "serde" -version = "1.0.0" +name = "ryu" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "369633cfe0f0bde1dfc037fb6c5a329d46586a31f981bed14d87487a3439ae37" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] -name = "serde_derive" -version = "1.0.0" +name = "serde" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a61ecb8511aaff381424f98b49a059017420ec60e15e8d63b645701af7fa9b8" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ - "quote 0.3.8", - "serde_derive_internals", - "syn 0.11.10", + "serde_derive", ] [[package]] -name = "serde_derive_internals" -version = "0.15.0" +name = "serde_derive" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021c338d22c7e30f957a6ab7e388cb6098499dda9fd4ba1661ee074ca7a180d1" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ - "syn 0.11.10", - "synom", + "proc-macro2", + "quote", + "syn 2.0.50", ] [[package]] name = "serde_json" -version = "1.0.0" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9b1ec939469a124b27e208106550c38358ed4334d2b1b5b3825bc1ee37d946a" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ - "dtoa", - "itoa 0.3.0", - "num-traits 0.1.32", + "itoa", + "ryu", "serde", ] [[package]] name = "sha2" -version = "0.10.1" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest", ] @@ -856,14 +883,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "spin" -version = "0.9.2" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "strsim" @@ -871,6 +898,12 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + [[package]] name = "subtle" version = "2.5.0" @@ -879,113 +912,109 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "0.11.10" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "171b739972d9a1bfb169e8077238b51f9ebeaae4ff6e08072f7ba386a8802da2" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "quote 0.3.8", - "synom", - "unicode-xid 0.0.4", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] name = "syn" -version = "1.0.91" +version = "2.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" +checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" dependencies = [ "proc-macro2", - "quote 1.0.35", - "unicode-xid 0.2.0", + "quote", + "unicode-ident", ] [[package]] -name = "syn" -version = "2.0.46" +name = "synstructure" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", - "quote 1.0.35", - "unicode-ident", + "quote", + "syn 1.0.109", + "unicode-xid", ] [[package]] -name = "synom" -version = "0.11.0" +name = "thiserror" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fece1853fb872b0acdc3ff88f37c474018e125ef81cd4cb8c0ca515746b62ed" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ - "unicode-xid 0.0.4", + "thiserror-impl", ] [[package]] -name = "synstructure" -version = "0.12.0" +name = "thiserror-impl" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "affc27d5f1764f7487bafeb41e380664790716e38ba45d8487bddcc53e79f0f6" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", - "quote 1.0.35", - "syn 1.0.91", - "unicode-xid 0.1.0", + "quote", + "syn 2.0.50", ] [[package]] -name = "thiserror" -version = "1.0.30" +name = "time" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ - "thiserror-impl", + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", ] [[package]] -name = "thiserror-impl" -version = "1.0.30" +name = "time-core" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" -dependencies = [ - "proc-macro2", - "quote 1.0.35", - "syn 1.0.91", -] +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] -name = "time" -version = "0.1.36" +name = "time-macros" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "211b63c112206356ef1ff9b19355f43740fc3f85960c598a93d3a3d3ba7beade" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ - "kernel32-sys", - "libc", - "redox_syscall", - "winapi 0.2.4", + "num-conv", + "time-core", ] [[package]] -name = "time" -version = "0.3.7" +name = "tinyvec" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ - "itoa 1.0.1", - "libc", - "num_threads", - "time-macros", + "tinyvec_macros", ] [[package]] -name = "time-macros" -version = "0.2.3" +name = "tinyvec_macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25eb0ca3468fc0acc11828786797f6ef9aa1555e4a211a60d64cc8e4d1be47d6" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes", @@ -995,7 +1024,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1005,8 +1034,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", - "quote 1.0.35", - "syn 2.0.46", + "quote", + "syn 2.0.50", ] [[package]] @@ -1022,9 +1051,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.1" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4cdeb73537e63f98adcd73138af75e3f368ccaecffaa29d7eb61b9f5a440457" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite", @@ -1046,48 +1075,36 @@ dependencies = [ [[package]] name = "typenum" -version = "1.12.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" -version = "0.3.0" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2560b941fdb9ea38301b9b708504d612fcdf9c91a8c31d82219bd74cb07d304d" -dependencies = [ - "matches", -] +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f" - -[[package]] -name = "unicode-xid" -version = "0.0.4" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" - -[[package]] -name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] [[package]] name = "unicode-xid" -version = "0.2.0" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "untrusted" @@ -1097,12 +1114,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.0.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ddaf52e65c6b81c56b7e957c0b1970f7937f21c5c6774c4e56fcb4e20b48c6" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ + "form_urlencoded", "idna", - "matches", "percent-encoding", ] @@ -1114,9 +1131,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "version_check" -version = "0.9.0" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45d3d553fd9413fffe7147a20171d640eda0ad4c070acd7d0c885a21bcd2e8b7" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "wasi" @@ -1125,38 +1142,89 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "winapi" -version = "0.2.4" +name = "wasm-bindgen" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.50", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.50", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5350e40d908c7e8b9e5c9edb541ca47cc617c6229d3575a46da6f550f36c96fd" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" [[package]] name = "winapi" -version = "0.3.0" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3ad91d846a4a5342c1fb7008d26124ee6cf94a3953751618577295373b32117" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] -name = "winapi-build" -version = "0.1.1" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.3.0" +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a16a8e2ebfc883e2b1771c6482b1fb3c6831eab289ba391619a2d93a7356220f" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.3.0" +name = "windows-core" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca29cb03c8ceaf20f8224a18a530938305e9872b1478ea24ff44b4f503a1d1d" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] [[package]] name = "windows-sys" @@ -1164,65 +1232,131 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "x509-parser" @@ -1238,11 +1372,11 @@ dependencies = [ "oid-registry", "rusticata-macros", "thiserror", - "time 0.3.7", + "time", ] [[package]] name = "zeroize" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/Cargo.toml b/Cargo.toml index 5d8a1a88..256a7e26 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,7 +54,7 @@ tokio-test = "0.4.3" x509-parser = "0.15.1" # to make -Zminimal-versions work -[target.'cfg(test)'.dependencies] +[target.'cfg(any())'.dependencies] rustls = "0.22.1" num-bigint = "0.4.2" oid-registry = "0.6.1" From ce4c8f2412346c458d8be45b16e0f41ed317227a Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sat, 24 Feb 2024 23:45:19 +0500 Subject: [PATCH 007/175] Update tls test to use job runner --- tests/tls.rs | 161 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 99 insertions(+), 62 deletions(-) diff --git a/tests/tls.rs b/tests/tls.rs index e851a0cd..893283d3 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -3,7 +3,7 @@ use faktory::*; use serde_json::Value; use std::{ - env, io, + env, sync::{self, Arc}, }; use tokio_rustls::rustls::ClientConfig; @@ -27,18 +27,10 @@ async fn roundtrip_tls() { let local = "roundtrip_tls"; let (tx, rx) = sync::mpsc::channel(); - let tx = sync::Arc::new(sync::Mutex::new(tx)); let mut c = ConsumerBuilder::default(); + c.hostname("tester".to_string()).wid(local.to_string()); - { - c.register(local, move |j| { - let tx = sync::Arc::clone(&tx); - Box::pin(async move { - tx.lock().unwrap().send(j).unwrap(); - Ok::<(), io::Error>(()) - }) - }); - } + c.register_runner(local, fixtures::JobHandler::new(tx)); let tls = || async { let verifier = fixtures::TestServerCertVerifier::new( @@ -76,68 +68,113 @@ async fn roundtrip_tls() { } mod fixtures { - #![allow(unused_variables)] + pub use handler::JobHandler; + pub use tls::TestServerCertVerifier; - use std::fs; - use std::path::PathBuf; + mod handler { + use faktory::*; - use tokio_rustls::rustls::client::danger::{ - HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier, - }; - use tokio_rustls::rustls::pki_types::{CertificateDer, ServerName, UnixTime}; - use tokio_rustls::rustls::DigitallySignedStruct; - use tokio_rustls::rustls::Error as RustlsError; - use tokio_rustls::rustls::SignatureScheme; - use x509_parser::pem::parse_x509_pem; - - #[derive(Debug)] - pub(super) struct TestServerCertVerifier<'a> { - scheme: SignatureScheme, - cert_der: CertificateDer<'a>, - } + use std::{ + io, + sync::{mpsc::Sender, Arc, Mutex}, + time::Duration, + }; + use tokio::time; - impl TestServerCertVerifier<'_> { - pub(super) fn new(scheme: SignatureScheme, cert_path: PathBuf) -> Self { - let cert = fs::read(&cert_path).unwrap(); - let (_, pem) = parse_x509_pem(&cert).unwrap(); - let cert_der = CertificateDer::try_from(pem.contents).unwrap(); - Self { scheme, cert_der } + pub struct JobHandler { + chan: Arc>>, } - } - impl ServerCertVerifier for TestServerCertVerifier<'_> { - fn verify_server_cert( - &self, - end_entity: &CertificateDer<'_>, - intermediates: &[CertificateDer<'_>], - server_name: &ServerName<'_>, - ocsp_response: &[u8], - now: UnixTime, - ) -> Result { - assert_eq!(&self.cert_der, end_entity); - Ok(ServerCertVerified::assertion()) + impl JobHandler { + pub fn new(chan: Sender) -> Self { + Self { + chan: Arc::new(Mutex::new(chan)), + } + } + + async fn process_one(&self, job: Job) -> io::Result<()> { + time::sleep(Duration::from_millis(100)).await; + eprintln!("{:?}", job); + self.chan.lock().unwrap().send(job).unwrap(); + Ok(()) + } } - fn verify_tls12_signature( - &self, - message: &[u8], - cert: &CertificateDer<'_>, - dss: &DigitallySignedStruct, - ) -> Result { - Ok(HandshakeSignatureValid::assertion()) + #[async_trait::async_trait] + impl JobRunner for JobHandler { + type Error = io::Error; + + async fn run(&self, job: Job) -> Result<(), Self::Error> { + self.process_one(job).await.unwrap(); + Ok(()) + } + } + } + + mod tls { + #![allow(unused_variables)] + + use std::fs; + use std::path::PathBuf; + + use tokio_rustls::rustls::client::danger::{ + HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier, + }; + use tokio_rustls::rustls::pki_types::{CertificateDer, ServerName, UnixTime}; + use tokio_rustls::rustls::DigitallySignedStruct; + use tokio_rustls::rustls::Error as RustlsError; + use tokio_rustls::rustls::SignatureScheme; + use x509_parser::pem::parse_x509_pem; + + #[derive(Debug)] + pub struct TestServerCertVerifier<'a> { + scheme: SignatureScheme, + cert_der: CertificateDer<'a>, } - fn verify_tls13_signature( - &self, - message: &[u8], - cert: &CertificateDer<'_>, - dss: &DigitallySignedStruct, - ) -> Result { - Ok(HandshakeSignatureValid::assertion()) + impl TestServerCertVerifier<'_> { + pub fn new(scheme: SignatureScheme, cert_path: PathBuf) -> Self { + let cert = fs::read(&cert_path).unwrap(); + let (_, pem) = parse_x509_pem(&cert).unwrap(); + let cert_der = CertificateDer::try_from(pem.contents).unwrap(); + Self { scheme, cert_der } + } } - fn supported_verify_schemes(&self) -> Vec { - vec![self.scheme] + impl ServerCertVerifier for TestServerCertVerifier<'_> { + fn verify_server_cert( + &self, + end_entity: &CertificateDer<'_>, + intermediates: &[CertificateDer<'_>], + server_name: &ServerName<'_>, + ocsp_response: &[u8], + now: UnixTime, + ) -> Result { + assert_eq!(&self.cert_der, end_entity); + Ok(ServerCertVerified::assertion()) + } + + fn verify_tls12_signature( + &self, + message: &[u8], + cert: &CertificateDer<'_>, + dss: &DigitallySignedStruct, + ) -> Result { + Ok(HandshakeSignatureValid::assertion()) + } + + fn verify_tls13_signature( + &self, + message: &[u8], + cert: &CertificateDer<'_>, + dss: &DigitallySignedStruct, + ) -> Result { + Ok(HandshakeSignatureValid::assertion()) + } + + fn supported_verify_schemes(&self) -> Vec { + vec![self.scheme] + } } } } From fb2ddf114daecbb654f01178f6639294342c8d40 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sun, 25 Feb 2024 00:02:03 +0500 Subject: [PATCH 008/175] interim --- src/consumer/runner.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/consumer/runner.rs b/src/consumer/runner.rs index 6a181bc2..6a962440 100644 --- a/src/consumer/runner.rs +++ b/src/consumer/runner.rs @@ -97,3 +97,34 @@ where } pub(crate) type BoxedJobRunner = Box>; + +#[repr(transparent)] +pub struct Runner(pub F); + +#[async_trait::async_trait] +impl JobRunner for Runner +where + F: Send + Sync + Fn(Job) -> Fut, + Fut: Future> + Send, + E: 'static +{ + type Error = E; + async fn run(&self, job: Job) -> Result<(), E> { + (self.0)(job).await + } +} + +// macro_rules! runner { +// ($struct:ident, $cmd:expr) => { +// #[async_trait::async_trait] +// impl FaktoryCommand for $struct { +// async fn issue(&self, w: &mut W) -> Result<(), Error> { +// let c = format!("{} ", $cmd); +// w.write_all(c.as_bytes()).await?; +// let r = serde_json::to_vec(self).map_err(Error::Serialization)?; +// w.write_all(&r).await?; +// Ok(w.write_all(b"\r\n").await?) +// } +// } +// }; +// } From 2d4ef10d7242445a0ce11dbaa22d672f4bf8dba7 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sun, 25 Feb 2024 00:54:54 +0500 Subject: [PATCH 009/175] Improme consumer builder api --- src/consumer/builder.rs | 7 ++-- src/consumer/mod.rs | 31 +++++++++++--- src/consumer/runner.rs | 57 ++++---------------------- tests/consumer.rs | 60 +++++++++++---------------- tests/real/community.rs | 24 +++++------ tests/real/enterprise.rs | 88 +++++++++++++++++----------------------- 6 files changed, 110 insertions(+), 157 deletions(-) diff --git a/src/consumer/builder.rs b/src/consumer/builder.rs index 4b558425..9bbcbf9e 100644 --- a/src/consumer/builder.rs +++ b/src/consumer/builder.rs @@ -7,7 +7,6 @@ use crate::{ Error, Job, JobRunner, }; use std::future::Future; -use std::pin::Pin; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; @@ -77,10 +76,12 @@ impl ConsumerBuilder { /// /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler /// function is called with that job as its argument. - pub fn register(&mut self, kind: K, handler: H) -> &mut Self + pub fn register(&mut self, kind: K, handler: H) -> &mut Self where K: Into, - H: Send + Sync + Fn(Job) -> Pin> + Send>> + 'static, + + H: Fn(Job) -> Fut + Send + Sync + 'static, + Fut: Future> + Send, { self.register_runner(kind, Closure(handler)); self diff --git a/src/consumer/mod.rs b/src/consumer/mod.rs index 2139bc76..bf2ad326 100644 --- a/src/consumer/mod.rs +++ b/src/consumer/mod.rs @@ -97,19 +97,23 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// /// # Examples /// -/// Create a worker with all default options, register a single handler (for the `foobar` job +/// Create a worker with all default options, register a single handler (for the `foo` job /// type), connect to the Faktory server, and start accepting jobs. /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::ConsumerBuilder; +/// use faktory::{ConsumerBuilder, Job}; /// use std::io; /// -/// let mut c = ConsumerBuilder::default(); -/// c.register("foobar", |job| Box::pin(async move { +/// async fn process_job(job: Job) -> io::Result<()> { /// println!("{:?}", job); -/// Ok::<(), io::Error>(()) -/// })); +/// Ok(()) +/// } +/// +/// let mut c = ConsumerBuilder::default(); +/// +/// c.register("foo", process_job); +/// /// let mut c = c.connect(None).await.unwrap(); /// if let Err(e) = c.run(&["default"]).await { /// println!("worker failed: {}", e); @@ -117,6 +121,21 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// # }); /// ``` /// +/// Handler can be inlined. +/// +/// ```no_run +/// # use faktory::ConsumerBuilder; +/// # use std::io; +/// let mut c = ConsumerBuilder::default(); +/// c.register("bar", |job| async move { +/// println!("{:?}", job); +/// Ok::<(), io::Error>(()) +/// }); +/// ``` +/// +/// You can also register anything that implements [`JobRunner`] to handle jobs +/// with [`register_runner`](ConsumerBuilder::register_runner). +/// pub struct Consumer { c: Client, worker_states: Arc, diff --git a/src/consumer/runner.rs b/src/consumer/runner.rs index 6a962440..0d6e7aa6 100644 --- a/src/consumer/runner.rs +++ b/src/consumer/runner.rs @@ -1,5 +1,5 @@ use crate::Job; -use std::{future::Future, pin::Pin}; +use std::future::Future; /// Implementations of this trait can be registered to run jobs in a `Consumer`. /// @@ -49,9 +49,10 @@ pub trait JobRunner: Send + Sync { // Implements JobRunner for a closure that takes a Job and returns a Result<(), E> #[async_trait::async_trait] -impl JobRunner for Box +impl JobRunner for Box where - F: Send + Sync + Fn(Job) -> Pin> + Send>>, + F: Send + Sync + Fn(Job) -> Fut, + Fut: Future> + Send, { type Error = E; async fn run(&self, job: Job) -> Result<(), E> { @@ -61,9 +62,10 @@ where // Additional Blanket Implementations #[async_trait::async_trait] -impl<'a, E, F> JobRunner for &'a F +impl<'a, E, F, Fut> JobRunner for &'a F where - F: Send + Sync + Fn(Job) -> Pin> + Send>>, + F: Send + Sync + Fn(Job) -> Fut, + Fut: Future> + Send, { type Error = E; async fn run(&self, job: Job) -> Result<(), E> { @@ -71,42 +73,14 @@ where } } -#[async_trait::async_trait] -impl<'a, E, F> JobRunner for &'a mut F -where - F: Send + Sync + Fn(Job) -> Pin> + Send>>, -{ - type Error = E; - async fn run(&self, job: Job) -> Result<(), E> { - (self as &F)(job).await - } -} - #[repr(transparent)] pub(crate) struct Closure(pub F); #[async_trait::async_trait] -impl JobRunner for Closure -where - F: Send + Sync + Fn(Job) -> Pin> + Send>>, -{ - type Error = E; - async fn run(&self, job: Job) -> Result<(), E> { - (self.0)(job).await - } -} - -pub(crate) type BoxedJobRunner = Box>; - -#[repr(transparent)] -pub struct Runner(pub F); - -#[async_trait::async_trait] -impl JobRunner for Runner +impl JobRunner for Closure where F: Send + Sync + Fn(Job) -> Fut, Fut: Future> + Send, - E: 'static { type Error = E; async fn run(&self, job: Job) -> Result<(), E> { @@ -114,17 +88,4 @@ where } } -// macro_rules! runner { -// ($struct:ident, $cmd:expr) => { -// #[async_trait::async_trait] -// impl FaktoryCommand for $struct { -// async fn issue(&self, w: &mut W) -> Result<(), Error> { -// let c = format!("{} ", $cmd); -// w.write_all(c.as_bytes()).await?; -// let r = serde_json::to_vec(self).map_err(Error::Serialization)?; -// w.write_all(&r).await?; -// Ok(w.write_all(b"\r\n").await?) -// } -// } -// }; -// } +pub(crate) type BoxedJobRunner = Box>; diff --git a/tests/consumer.rs b/tests/consumer.rs index 3505dcac..1ddca0c6 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -15,7 +15,7 @@ async fn hello() { c.hostname("host".to_string()) .wid("wid".to_string()) .labels(vec!["foo".to_string(), "bar".to_string()]); - c.register("never_called", |_| Box::pin(async move { unreachable!() })); + c.register("never_called", |_j: Job| async move { unreachable!() }); let c = c.connect_with(s.clone(), None).await.unwrap(); let written = s.pop_bytes_written(0); assert!(written.starts_with(b"HELLO {")); @@ -41,7 +41,7 @@ async fn hello_pwd() { let mut s = mock::Stream::with_salt(1545, "55104dc76695721d"); let mut c: ConsumerBuilder = ConsumerBuilder::default(); - c.register("never_called", |_| Box::pin(async move { unreachable!() })); + c.register("never_called", |_j: Job| async move { unreachable!() }); let c = c .connect_with(s.clone(), Some("foobar".to_string())) .await @@ -62,11 +62,9 @@ async fn hello_pwd() { async fn dequeue() { let mut s = mock::Stream::default(); let mut c = ConsumerBuilder::default(); - c.register("foobar", |job: Job| { - Box::pin(async move { - assert_eq!(job.args(), &["z"]); - Ok::<(), io::Error>(()) - }) + c.register("foobar", |job: Job| async move { + assert_eq!(job.args(), &["z"]); + Ok::<(), io::Error>(()) }); let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); @@ -103,11 +101,9 @@ async fn dequeue() { async fn dequeue_first_empty() { let mut s = mock::Stream::default(); let mut c = ConsumerBuilder::default(); - c.register("foobar", |job: Job| { - Box::pin(async move { - assert_eq!(job.args(), &["z"]); - Ok::<(), io::Error>(()) - }) + c.register("foobar", |job: Job| async move { + assert_eq!(job.args(), &["z"]); + Ok::<(), io::Error>(()) }); let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); @@ -161,12 +157,10 @@ async fn well_behaved() { let mut s = mock::Stream::new(2); // main plus worker let mut c = ConsumerBuilder::default(); c.wid("wid".to_string()); - c.register("foobar", |_| { - Box::pin(async move { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - sleep(Duration::from_secs(7)).await; - Ok::<(), io::Error>(()) - }) + c.register("foobar", |_| async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) }); let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); @@ -228,12 +222,10 @@ async fn no_first_job() { let mut s = mock::Stream::new(2); let mut c = ConsumerBuilder::default(); c.wid("wid".to_string()); - c.register("foobar", |_| { - Box::pin(async move { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - sleep(Duration::from_secs(7)).await; - Ok::<(), io::Error>(()) - }) + c.register("foobar", |_| async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) }); let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); @@ -297,12 +289,10 @@ async fn well_behaved_many() { let mut c = ConsumerBuilder::default(); c.workers(2); c.wid("wid".to_string()); - c.register("foobar", |_| { - Box::pin(async move { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - sleep(Duration::from_secs(7)).await; - Ok::<(), io::Error>(()) - }) + c.register("foobar", |_| async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) }); let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); @@ -374,12 +364,10 @@ async fn terminate() { let mut s = mock::Stream::new(2); let mut c: ConsumerBuilder = ConsumerBuilder::default(); c.wid("wid".to_string()); - c.register("foobar", |_| { - Box::pin(async move { - loop { - sleep(Duration::from_secs(5)).await; - } - }) + c.register("foobar", |_| async move { + loop { + sleep(Duration::from_secs(5)).await; + } }); let mut c = c.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); diff --git a/tests/real/community.rs b/tests/real/community.rs index 13b9ce21..8f3248de 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -30,13 +30,11 @@ async fn roundtrip() { skip_check!(); let jid = String::from("x-job-id-0123456782"); let mut c = ConsumerBuilder::default(); - c.register("order", |job| Box::pin(process_order(job))); - c.register("image", |job| { - Box::pin(async move { - println!("{:?}", job); - assert_eq!(job.kind(), "image"); - Ok(()) - }) + c.register("order", process_order); + c.register("image", |job| async move { + println!("{:?}", job); + assert_eq!(job.kind(), "image"); + Ok(()) }); let mut c = c.connect(None).await.unwrap(); let mut p = Producer::connect(None).await.unwrap(); @@ -237,12 +235,10 @@ async fn test_jobs_pushed_in_bulk() { // is not an all-or-nothing operation: let mut c = ConsumerBuilder::default(); c.hostname("tester".to_string()).wid(local_3.to_string()); - c.register("very_special", move |_job| { - Box::pin(async move { Ok::<(), io::Error>(()) }) - }); - c.register("broken", move |_job| { - Box::pin(async move { Ok::<(), io::Error>(()) }) + c.register("very_special", move |_job| async { + Ok::<(), io::Error>(()) }); + c.register("broken", move |_job| async { Ok::<(), io::Error>(()) }); let mut c = c.connect(None).await.unwrap(); // we targeted "very_special" jobs to "local_4" queue @@ -272,8 +268,8 @@ async fn test_jobs_created_with_builder() { // prepare a producer ("client" in Faktory terms) and consumer ("worker"): let mut producer = Producer::connect(None).await.unwrap(); let mut consumer = ConsumerBuilder::default(); - consumer.register("rebuild_index", |j| Box::pin(assert_args_empty(j))); - consumer.register("register_order", |j| Box::pin(assert_args_not_empty(j))); + consumer.register("rebuild_index", assert_args_empty); + consumer.register("register_order", assert_args_not_empty); let mut consumer = consumer.connect(None).await.unwrap(); diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index fa2f6b54..ef2ca46b 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -45,7 +45,7 @@ async fn ent_expiring_job() { // prepare a producer ("client" in Faktory terms) and consumer ("worker"): let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register("AnExpiringJob", |j| Box::pin(print_job(j))); + c.register("AnExpiringJob", print_job); let mut c = c.connect(Some(&url)).await.unwrap(); // prepare an expiring job: @@ -94,7 +94,7 @@ async fn ent_unique_job() { // prepare producer and consumer: let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register(job_type, |j| Box::pin(print_job(j))); + c.register(job_type, print_job); let mut c = c.connect(Some(&url)).await.unwrap(); // Reminder. Jobs are considered unique for kind + args + queue. @@ -210,20 +210,18 @@ async fn ent_unique_job_until_success() { // to work hard: let mut producer_a = Producer::connect(Some(&url1)).await.unwrap(); let mut consumer_a = ConsumerBuilder::default_async(); - consumer_a.register(job_type, |job| { - Box::pin(async move { - let args = job.args().to_owned(); - let mut args = args.iter(); - let diffuculty_level = args - .next() - .expect("job difficulty level is there") - .to_owned(); - let sleep_secs = - serde_json::from_value::(diffuculty_level).expect("a valid number"); - time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; - eprintln!("{:?}", job); - Ok::<(), io::Error>(()) - }) + consumer_a.register(job_type, |job| async move { + let args = job.args().to_owned(); + let mut args = args.iter(); + let diffuculty_level = args + .next() + .expect("job difficulty level is there") + .to_owned(); + let sleep_secs = + serde_json::from_value::(diffuculty_level).expect("a valid number"); + time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; + eprintln!("{:?}", job); + Ok::<(), io::Error>(()) }); let mut consumer_a = consumer_a.connect(Some(&url1)).await.unwrap(); let job = JobBuilder::new(job_type) @@ -292,20 +290,18 @@ async fn ent_unique_job_until_start() { let handle = tokio::spawn(async move { let mut producer_a = Producer::connect(Some(&url1)).await.unwrap(); let mut consumer_a = ConsumerBuilder::default_async(); - consumer_a.register(job_type, |job| { - Box::pin(async move { - let args = job.args().to_owned(); - let mut args = args.iter(); - let diffuculty_level = args - .next() - .expect("job difficulty level is there") - .to_owned(); - let sleep_secs = - serde_json::from_value::(diffuculty_level).expect("a valid number"); - time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; - eprintln!("{:?}", job); - Ok::<(), io::Error>(()) - }) + consumer_a.register(job_type, |job| async move { + let args = job.args().to_owned(); + let mut args = args.iter(); + let diffuculty_level = args + .next() + .expect("job difficulty level is there") + .to_owned(); + let sleep_secs = + serde_json::from_value::(diffuculty_level).expect("a valid number"); + time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; + eprintln!("{:?}", job); + Ok::<(), io::Error>(()) }); let mut consumer_a = consumer_a.connect(Some(&url1)).await.unwrap(); producer_a @@ -384,7 +380,7 @@ async fn ent_unique_job_bypass_unique_lock() { // let's consume three times from the queue to verify that the first two jobs // have been enqueued for real, while the last one has not. let mut c = ConsumerBuilder::default_async(); - c.register("order", |j| Box::pin(print_job(j))); + c.register("order", print_job); let mut c = c.connect(Some(&url)).await.unwrap(); assert!(c.run_one(0, &[queue_name]).await.unwrap()); @@ -564,10 +560,8 @@ async fn test_batch_of_jobs_can_be_initiated() { let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register("thumbnail", move |_job| { - Box::pin(async move { Ok::<(), io::Error>(()) }) - }); - c.register("clean_up", move |_job| Box::pin(async move { Ok(()) })); + c.register("thumbnail", |_job| async { Ok::<(), io::Error>(()) }); + c.register("clean_up", |_job| async { Ok(()) }); let mut c = c.connect(Some(&url)).await.unwrap(); let mut t = Client::connect(Some(&url)) .await @@ -703,9 +697,7 @@ async fn test_batches_can_be_nested() { // Set up 'producer', 'consumer', and 'tracker': let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register("jobtype", move |_job| { - Box::pin(async move { Ok::<(), io::Error>(()) }) - }); + c.register("jobtype", |_job| async { Ok::<(), io::Error>(()) }); let mut _c = c.connect(Some(&url)).await.unwrap(); let mut t = Client::connect(Some(&url)) .await @@ -805,10 +797,8 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { // prepare a producer, a consumer of 'order' jobs, and a tracker: let mut p = Producer::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); - c.register("order", move |_job| Box::pin(async move { Ok(()) })); - c.register("order_clean_up", move |_job| { - Box::pin(async move { Ok::<(), io::Error>(()) }) - }); + c.register("order", |_job| async { Ok(()) }); + c.register("order_clean_up", |_job| async { Ok::<(), io::Error>(()) }); let mut c = c.connect(Some(&url)).await.unwrap(); let mut t = Client::connect(Some(&url)).await.unwrap(); @@ -932,14 +922,12 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { assert_eq!(s.success_callback_state, CallbackState::Pending); let mut c = ConsumerBuilder::default(); - c.register(complete_cb_jobtype, |_job| Box::pin(async { Ok(()) })); - c.register(success_cb_jobtype, |_job| { - Box::pin(async { - Err(io::Error::new( - io::ErrorKind::Other, - "we want this one to fail to test the 'CallbackState' behavior", - )) - }) + c.register(complete_cb_jobtype, |_job| async { Ok(()) }); + c.register(success_cb_jobtype, |_job| async { + Err(io::Error::new( + io::ErrorKind::Other, + "we want this one to fail to test the 'CallbackState' behavior", + )) }); let mut c = c.connect(Some(&url)).await.unwrap(); From 05825142e713044d7b6874eeb8905d5361015b91 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sun, 25 Feb 2024 00:58:50 +0500 Subject: [PATCH 010/175] Run fmt --- src/consumer/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consumer/mod.rs b/src/consumer/mod.rs index bf2ad326..62bc550f 100644 --- a/src/consumer/mod.rs +++ b/src/consumer/mod.rs @@ -133,7 +133,7 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// }); /// ``` /// -/// You can also register anything that implements [`JobRunner`] to handle jobs +/// You can also register anything that implements [`JobRunner`] to handle jobs /// with [`register_runner`](ConsumerBuilder::register_runner). /// pub struct Consumer { From 7f4479828234415f7e7b2535df63bdd4e9d92fed Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sun, 25 Feb 2024 11:29:29 +0500 Subject: [PATCH 011/175] Split client mod --- src/proto/client/ent.rs | 48 +++++ src/proto/client/mod.rs | 337 ++++++++++++++++++++++++++++++++++ src/proto/client/options.rs | 39 ++++ src/proto/mod.rs | 351 +----------------------------------- 4 files changed, 430 insertions(+), 345 deletions(-) create mode 100644 src/proto/client/ent.rs create mode 100644 src/proto/client/mod.rs create mode 100644 src/proto/client/options.rs diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs new file mode 100644 index 00000000..fcf13a58 --- /dev/null +++ b/src/proto/client/ent.rs @@ -0,0 +1,48 @@ +use super::super::{single, BatchStatus, GetBatchStatus, Progress, ProgressUpdate, Track}; +use super::{Client, ReadToken}; +use crate::error::Error; +use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; + +impl Client { + /// Send information on a job's execution progress to Faktory. + pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { + let cmd = Track::Set(upd); + self.issue(&cmd).await?.read_ok().await + } + + /// Fetch information on a job's execution progress from Faktory. + pub async fn get_progress(&mut self, jid: String) -> Result, Error> { + let cmd = Track::Get(jid); + self.issue(&cmd).await?.read_json().await + } + + /// Fetch information on a batch of jobs execution progress. + pub async fn get_batch_status(&mut self, bid: String) -> Result, Error> { + let cmd = GetBatchStatus::from(bid); + self.issue(&cmd).await?.read_json().await + } +} + +impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { + pub(crate) async fn read_bid(self) -> Result { + single::read_bid(&mut self.0.stream).await + } + + pub(crate) async fn maybe_bid(self) -> Result, Error> { + use crate::error; + + let bid_read_res = single::read_bid(&mut self.0.stream).await; + if bid_read_res.is_ok() { + return Ok(Some(bid_read_res.unwrap())); + } + match bid_read_res.unwrap_err() { + Error::Protocol(error::Protocol::Internal { msg }) => { + if msg.starts_with("No such batch") { + return Ok(None); + } + return Err(error::Protocol::Internal { msg }.into()); + } + another => Err(another), + } + } +} diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs new file mode 100644 index 00000000..3a5feb86 --- /dev/null +++ b/src/proto/client/mod.rs @@ -0,0 +1,337 @@ +#[cfg(doc)] +use crate::{Consumer, Producer}; + +#[cfg(feature = "ent")] +#[cfg_attr(docsrs, doc(cfg(feature = "ent")))] +mod ent; + +use super::utils; +use super::{single, Reconnect}; +use crate::error::{self, Error}; +use crate::Job; +use tokio::io::BufStream; +use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::net::TcpStream as TokioStream; + +mod options; +pub(crate) use options::ClientOptions; + +pub(crate) const EXPECTED_PROTOCOL_VERSION: usize = 2; + +fn check_protocols_match(ver: usize) -> Result<(), Error> { + if ver != EXPECTED_PROTOCOL_VERSION { + return Err(error::Connect::VersionMismatch { + ours: EXPECTED_PROTOCOL_VERSION, + theirs: ver, + } + .into()); + } + Ok(()) +} + +/// `Client` is used to enqueue new jobs that will in turn be processed by Faktory workers. +/// +/// # Connecting to Faktory +/// +/// To issue jobs, the `Client` must first be connected to the Faktory server. Exactly how you do +/// that depends on your setup. Faktory suggests using the `FAKTORY_PROVIDER` and `FAKTORY_URL` +/// environment variables (see their docs for more information) with `localhost:7419` as the +/// fallback default. If you want this behavior, pass `None` to [`Client::connect`](Client::connect). +/// If not, you can supply the URL directly in the form: +/// +/// ```text +/// protocol://[:password@]hostname[:port] +/// ``` +/// +/// +/// # Issuing jobs +/// +/// Most of the lifetime of a `Client` will be spent creating and enqueueing jobs for Faktory +/// workers. This is done by passing a [`Job`](struct.Job.html) to +/// [`Client::enqueue`](Client::enqueue). The most important part of a `Job` +/// is its `kind`; this field dictates how workers will execute the job when they receive it. The +/// string provided here must match a handler registered on the worker using +/// [`ConsumerBuilder::register`](struct.ConsumerBuilder.html#method.register) (or the equivalent +/// handler registration method in workers written in other languages). +/// +/// Since Faktory workers do not all need to be the same (you could have some written in Rust for +/// performance-critical tasks, some in Ruby for more webby tasks, etc.), it may be the case that a +/// given job can only be executed by some workers (e.g., if they job type is not registered at +/// others). To allow for this, Faktory includes a `labels` field with each job. Jobs will only be +/// sent to workers whose labels (see +/// [`ConsumerBuilder::labels`](struct.ConsumerBuilder.html#method.labels)) match those set in +/// `Job::labels`. +/// +/// # Examples +/// +/// Connecting to an unsecured Faktory server using environment variables: +/// +/// ```no_run +/// # tokio_test::block_on(async { +/// use faktory::Client; +/// let p = Client::connect(None).await.unwrap(); +/// # }); +/// ``` +/// +/// Connecting to a secured Faktory server using an explicit URL: +/// +/// ```no_run +/// # tokio_test::block_on(async { +/// use faktory::Client; +/// let p = Client::connect(Some("tcp://:hunter2@localhost:7439")).await.unwrap(); +/// # }) +/// ``` +/// +/// Issuing a job using a `Client`: +/// +/// ```no_run +/// # tokio_test::block_on(async { +/// # use faktory::Client; +/// # let mut client = Client::connect(None).await.unwrap(); +/// use faktory::Job; +/// client.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); +/// # }); +/// ``` +/// +/// `Client` is also useful for retrieving and updating information on a job's execution progress +/// (see [`Progress`] and [`ProgressUpdate`]), as well for retrieving a batch's status +/// from the Faktory server (see [`BatchStatus`]). +/// +/// Fetching a job's execution progress: +/// +/// ```no_run +/// # tokio_test::block_on(async { +/// use faktory::{Client, ent::JobState}; +/// let job_id = String::from("W8qyVle9vXzUWQOf"); +/// let mut cl = Client::connect(None).await?; +/// if let Some(progress) = cl.get_progress(job_id).await? { +/// if let JobState::Success = progress.state { +/// # /* +/// ... +/// # */ +/// } +/// } +/// # Ok::<(), faktory::Error>(()) +/// }); +/// ``` +/// +/// Sending an update on a job's execution progress: +/// +/// ```no_run +/// # tokio_test::block_on(async { +/// use faktory::{Client, ent::ProgressUpdateBuilder}; +/// let jid = String::from("W8qyVle9vXzUWQOf"); +/// let mut cl = Client::connect(None).await?; +/// let progress = ProgressUpdateBuilder::new(&jid) +/// .desc("Almost done...".to_owned()) +/// .percent(99) +/// .build(); +/// cl.set_progress(progress).await?; +/// # Ok::<(), faktory::Error>(()) +/// }); +///```` +/// +/// Fetching a batch's status: +/// +/// ```no_run +/// # tokio_test::block_on(async { +/// use faktory::Client; +/// let bid = String::from("W8qyVle9vXzUWQOg"); +/// let mut cl = Client::connect(None).await?; +/// if let Some(status) = cl.get_batch_status(bid).await? { +/// println!("This batch created at {}", status.created_at); +/// } +/// # Ok::<(), faktory::Error>(()) +/// }); +/// ``` +pub struct Client { + stream: S, + opts: ClientOptions, +} + +impl Client +where + S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send + Reconnect, +{ + pub(crate) async fn connect_again(&mut self) -> Result { + let s = self.stream.reconnect().await?; + Client::new(s, self.opts.clone()).await + } + + pub(crate) async fn reconnect(&mut self) -> Result<(), Error> { + self.stream = self.stream.reconnect().await?; + self.init().await + } +} + +impl Drop for Client +where + S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, +{ + fn drop(&mut self) { + tokio::task::block_in_place(|| { + tokio::runtime::Handle::current().block_on(async { + single::write_command(&mut self.stream, &single::End) + .await + .unwrap(); + }) + }); + } +} + +pub(crate) enum HeartbeatStatus { + Ok, + Terminate, + Quiet, +} + +impl Client> { + /// Create new [`Client`] and connect to a Faktory server. + /// + /// If `url` is not given, will use the standard Faktory environment variables. Specifically, + /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address + /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the + /// server address. If the latter environment variable is not defined, the connection will be + /// made to + /// + /// ```text + /// tcp://localhost:7419 + /// ``` + pub async fn connect(url: Option<&str>) -> Result>, Error> { + let url = utils::parse_provided_or_from_env(url)?; + let stream = TokioStream::connect(utils::host_from_url(&url)).await?; + let buffered = BufStream::new(stream); + Self::connect_with(buffered, url.password().map(|p| p.to_string())).await + } +} + +impl Client +where + S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, +{ + async fn init(&mut self) -> Result<(), Error> { + let hi = single::read_hi(&mut self.stream).await?; + check_protocols_match(hi.version)?; + + let mut hello = single::Hello::default(); + + // prepare password hash, if one expected by 'Faktory' + if hi.salt.is_some() { + if let Some(ref pwd) = self.opts.password { + hello.set_password(&hi, pwd); + } else { + return Err(error::Connect::AuthenticationNeeded.into()); + } + } + + // fill in any missing options, and remember them for re-connect + let mut hello = single::Hello::default(); + + if self.opts.is_worker { + // fill in any missing options, and remember them for re-connect + + let hostname = self + .opts + .hostname + .clone() + .or_else(|| hostname::get().ok()?.into_string().ok()) + .unwrap_or_else(|| "local".to_string()); + self.opts.hostname = Some(hostname); + let pid = self.opts.pid.unwrap_or_else(|| std::process::id() as usize); + self.opts.pid = Some(pid); + let wid = self.opts.wid.clone().unwrap_or_else(single::gen_random_wid); + self.opts.wid = Some(wid); + + hello.hostname = Some(self.opts.hostname.clone().unwrap()); + hello.wid = Some(self.opts.wid.clone().unwrap()); + hello.pid = Some(self.opts.pid.unwrap()); + hello.labels = self.opts.labels.clone(); + } + + if hi.salt.is_some() { + if let Some(ref pwd) = self.opts.password { + hello.set_password(&hi, pwd); + } else { + return Err(error::Connect::AuthenticationNeeded.into()); + } + } + + single::write_command_and_await_ok(&mut self.stream, &hello).await?; + Ok(()) + } + + pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { + let mut c = Client { stream, opts }; + c.init().await?; + Ok(c) + } + + /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. + pub async fn connect_with(stream: S, pwd: Option) -> Result, Error> { + let opts = ClientOptions { + password: pwd, + ..Default::default() + }; + Client::new(stream, opts).await + } + + pub(crate) async fn issue( + &mut self, + c: &FC, + ) -> Result, Error> { + single::write_command(&mut self.stream, c).await?; + Ok(ReadToken(self)) + } + + pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> + where + Q: AsRef + Sync, + { + self.issue(&single::Fetch::from(queues)) + .await? + .read_json() + .await + } + + pub(crate) async fn heartbeat(&mut self) -> Result { + single::write_command( + &mut self.stream, + &single::Heartbeat::new(&**self.opts.wid.as_ref().unwrap()), + ) + .await?; + + match single::read_json::<_, serde_json::Value>(&mut self.stream).await? { + None => Ok(HeartbeatStatus::Ok), + Some(s) => match s + .as_object() + .and_then(|m| m.get("state")) + .and_then(|s| s.as_str()) + { + Some("terminate") => Ok(HeartbeatStatus::Terminate), + Some("quiet") => Ok(HeartbeatStatus::Quiet), + _ => Err(error::Protocol::BadType { + expected: "heartbeat response", + received: format!("{}", s), + } + .into()), + }, + } + } +} + +pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) +where + S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send; + +impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { + pub(crate) async fn read_ok(self) -> Result<(), Error> { + single::read_ok(&mut self.0.stream).await + } + + pub(crate) async fn read_json(self) -> Result, Error> + where + T: serde::de::DeserializeOwned, + { + single::read_json(&mut self.0.stream).await + } +} diff --git a/src/proto/client/options.rs b/src/proto/client/options.rs new file mode 100644 index 00000000..67dc0a2a --- /dev/null +++ b/src/proto/client/options.rs @@ -0,0 +1,39 @@ +#[derive(Clone)] +pub(crate) struct ClientOptions { + /// Hostname to advertise to server. + /// Defaults to machine hostname. + pub(crate) hostname: Option, + + /// PID to advertise to server. + /// Defaults to process ID. + pub(crate) pid: Option, + + /// Worker ID to advertise to server. + /// Defaults to a GUID. + pub(crate) wid: Option, + + /// Labels to advertise to se/// A stream that can be re-established after failing.rver. + /// Defaults to ["rust"]. + pub(crate) labels: Vec, + + /// Password to authenticate with + /// Defaults to None. + pub(crate) password: Option, + + /// Whether this client is instatianted for + /// a consumer ("worker" in Faktory terms). + pub(crate) is_worker: bool, +} + +impl Default for ClientOptions { + fn default() -> Self { + ClientOptions { + hostname: None, + pid: None, + wid: None, + labels: vec!["rust".to_string()], + password: None, + is_worker: false, + } + } +} diff --git a/src/proto/mod.rs b/src/proto/mod.rs index 0d7fe1a7..3db996dc 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -1,19 +1,19 @@ -#[cfg(doc)] -use crate::{Consumer, Producer}; - -use crate::error::{self, Error}; use std::io; use tokio::io::BufStream; -use tokio::io::{AsyncBufReadExt, AsyncRead, AsyncWrite, AsyncWriteExt}; +use tokio::io::{AsyncRead, AsyncWrite}; use tokio::net::TcpStream as TokioStream; +mod client; +pub use client::Client; +pub(crate) use client::{ClientOptions, HeartbeatStatus, EXPECTED_PROTOCOL_VERSION}; + mod single; + pub use single::{Ack, Fail, Info, Job, JobBuilder, Push, PushBulk, QueueAction, QueueControl}; pub(crate) mod utils; #[cfg(feature = "ent")] pub use self::single::ent::{JobState, Progress, ProgressUpdate, ProgressUpdateBuilder, Track}; -use self::single::Heartbeat; #[cfg(feature = "ent")] mod batch; @@ -23,59 +23,6 @@ pub use batch::{ OpenBatch, }; -pub(crate) const EXPECTED_PROTOCOL_VERSION: usize = 2; - -fn check_protocols_match(ver: usize) -> Result<(), Error> { - if ver != EXPECTED_PROTOCOL_VERSION { - return Err(error::Connect::VersionMismatch { - ours: EXPECTED_PROTOCOL_VERSION, - theirs: ver, - } - .into()); - } - Ok(()) -} - -#[derive(Clone)] -pub(crate) struct ClientOptions { - /// Hostname to advertise to server. - /// Defaults to machine hostname. - pub(crate) hostname: Option, - - /// PID to advertise to server. - /// Defaults to process ID. - pub(crate) pid: Option, - - /// Worker ID to advertise to server. - /// Defaults to a GUID. - pub(crate) wid: Option, - - /// Labels to advertise to se/// A stream that can be re-established after failing.rver. - /// Defaults to ["rust"]. - pub(crate) labels: Vec, - - /// Password to authenticate with - /// Defaults to None. - pub(crate) password: Option, - - /// Whether this client is instatianted for - /// a consumer ("worker" in Faktory terms). - pub(crate) is_worker: bool, -} - -impl Default for ClientOptions { - fn default() -> Self { - ClientOptions { - hostname: None, - pid: None, - wid: None, - labels: vec!["rust".to_string()], - password: None, - is_worker: false, - } - } -} - /// A stream that can be re-established after failing. #[async_trait::async_trait] pub trait Reconnect: Sized { @@ -102,289 +49,3 @@ where Ok(Self::new(stream)) } } - -/// A Faktory connection that represents neither a [`Producer`] nor a [`Consumer`]. -/// -/// Useful for retrieving and updating information on a job's execution progress -/// (see [`Progress`] and [`ProgressUpdate`]), as well for retrieving a batch's status -/// from the Faktory server (see [`BatchStatus`]). -/// -/// Fetching a job's execution progress: -/// ```no_run -/// # tokio_test::block_on(async { -/// use faktory::{Client, ent::JobState}; -/// let job_id = String::from("W8qyVle9vXzUWQOf"); -/// let mut cl = Client::connect(None).await?; -/// if let Some(progress) = cl.get_progress(job_id).await? { -/// if let JobState::Success = progress.state { -/// # /* -/// ... -/// # */ -/// } -/// } -/// # Ok::<(), faktory::Error>(()) -/// }); -/// ``` -/// -/// Sending an update on a job's execution progress: -/// -/// ```no_run -/// # tokio_test::block_on(async { -/// use faktory::{Client, ent::ProgressUpdateBuilder}; -/// let jid = String::from("W8qyVle9vXzUWQOf"); -/// let mut cl = Client::connect(None).await?; -/// let progress = ProgressUpdateBuilder::new(&jid) -/// .desc("Almost done...".to_owned()) -/// .percent(99) -/// .build(); -/// cl.set_progress(progress).await?; -/// # Ok::<(), faktory::Error>(()) -/// }); -///```` -/// -/// Fetching a batch's status: -/// -/// ```no_run -/// # tokio_test::block_on(async { -/// use faktory::Client; -/// let bid = String::from("W8qyVle9vXzUWQOg"); -/// let mut cl = Client::connect(None).await?; -/// if let Some(status) = cl.get_batch_status(bid).await? { -/// println!("This batch created at {}", status.created_at); -/// } -/// # Ok::<(), faktory::Error>(()) -/// }); -/// ``` -pub struct Client { - stream: S, - opts: ClientOptions, -} - -impl Client -where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send + Reconnect, -{ - pub(crate) async fn connect_again(&mut self) -> Result { - let s = self.stream.reconnect().await?; - Client::new(s, self.opts.clone()).await - } - - pub(crate) async fn reconnect(&mut self) -> Result<(), Error> { - self.stream = self.stream.reconnect().await?; - self.init().await - } -} - -impl Drop for Client -where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, -{ - fn drop(&mut self) { - tokio::task::block_in_place(|| { - tokio::runtime::Handle::current().block_on(async { - single::write_command(&mut self.stream, &single::End) - .await - .unwrap(); - }) - }); - } -} - -pub(crate) enum HeartbeatStatus { - Ok, - Terminate, - Quiet, -} - -impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { - let url = utils::parse_provided_or_from_env(url)?; - let stream = TokioStream::connect(utils::host_from_url(&url)).await?; - let buffered = BufStream::new(stream); - Self::connect_with(buffered, url.password().map(|p| p.to_string())).await - } -} - -impl Client -where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, -{ - async fn init(&mut self) -> Result<(), Error> { - let hi = single::read_hi(&mut self.stream).await?; - check_protocols_match(hi.version)?; - - let mut hello = single::Hello::default(); - - // prepare password hash, if one expected by 'Faktory' - if hi.salt.is_some() { - if let Some(ref pwd) = self.opts.password { - hello.set_password(&hi, pwd); - } else { - return Err(error::Connect::AuthenticationNeeded.into()); - } - } - - // fill in any missing options, and remember them for re-connect - let mut hello = single::Hello::default(); - - if self.opts.is_worker { - // fill in any missing options, and remember them for re-connect - - let hostname = self - .opts - .hostname - .clone() - .or_else(|| hostname::get().ok()?.into_string().ok()) - .unwrap_or_else(|| "local".to_string()); - self.opts.hostname = Some(hostname); - let pid = self.opts.pid.unwrap_or_else(|| std::process::id() as usize); - self.opts.pid = Some(pid); - let wid = self.opts.wid.clone().unwrap_or_else(single::gen_random_wid); - self.opts.wid = Some(wid); - - hello.hostname = Some(self.opts.hostname.clone().unwrap()); - hello.wid = Some(self.opts.wid.clone().unwrap()); - hello.pid = Some(self.opts.pid.unwrap()); - hello.labels = self.opts.labels.clone(); - } - - if hi.salt.is_some() { - if let Some(ref pwd) = self.opts.password { - hello.set_password(&hi, pwd); - } else { - return Err(error::Connect::AuthenticationNeeded.into()); - } - } - - single::write_command_and_await_ok(&mut self.stream, &hello).await?; - Ok(()) - } - - pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - let mut c = Client { stream, opts }; - c.init().await?; - Ok(c) - } - - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with(stream: S, pwd: Option) -> Result, Error> { - let opts = ClientOptions { - password: pwd, - ..Default::default() - }; - Client::new(stream, opts).await - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { - single::write_command(&mut self.stream, c).await?; - Ok(ReadToken(self)) - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - .read_json() - .await - } - - pub(crate) async fn heartbeat(&mut self) -> Result { - single::write_command( - &mut self.stream, - &Heartbeat::new(&**self.opts.wid.as_ref().unwrap()), - ) - .await?; - - match single::read_json::<_, serde_json::Value>(&mut self.stream).await? { - None => Ok(HeartbeatStatus::Ok), - Some(s) => match s - .as_object() - .and_then(|m| m.get("state")) - .and_then(|s| s.as_str()) - { - Some("terminate") => Ok(HeartbeatStatus::Terminate), - Some("quiet") => Ok(HeartbeatStatus::Quiet), - _ => Err(error::Protocol::BadType { - expected: "heartbeat response", - received: format!("{}", s), - } - .into()), - }, - } - } -} - -#[cfg(feature = "ent")] -#[cfg_attr(docsrs, doc(cfg(feature = "ent")))] -impl Client { - /// Send information on a job's execution progress to Faktory. - pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { - let cmd = Track::Set(upd); - self.issue(&cmd).await?.read_ok().await - } - - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: String) -> Result, Error> { - let cmd = Track::Get(jid); - self.issue(&cmd).await?.read_json().await - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: String) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } -} - -pub struct ReadToken<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send>(&'a mut Client); - -impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_ok(self) -> Result<(), Error> { - single::read_ok(&mut self.0.stream).await - } - - pub(crate) async fn read_json(self) -> Result, Error> - where - T: serde::de::DeserializeOwned, - { - single::read_json(&mut self.0.stream).await - } - - #[cfg(feature = "ent")] - pub(crate) async fn read_bid(self) -> Result { - single::read_bid(&mut self.0.stream).await - } - - #[cfg(feature = "ent")] - pub(crate) async fn maybe_bid(self) -> Result, Error> { - let bid_read_res = single::read_bid(&mut self.0.stream).await; - if bid_read_res.is_ok() { - return Ok(Some(bid_read_res.unwrap())); - } - match bid_read_res.unwrap_err() { - Error::Protocol(error::Protocol::Internal { msg }) => { - if msg.starts_with("No such batch") { - return Ok(None); - } - return Err(error::Protocol::Internal { msg }.into()); - } - another => Err(another), - } - } -} From 84864da7ae5aa2e614a200dcbab4586540666393 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sun, 25 Feb 2024 18:59:22 +0500 Subject: [PATCH 012/175] Producer -> Client --- src/bin/loadtest.rs | 4 +- src/lib.rs | 10 +- src/producer/mod.rs | 218 --------------------------------------- src/proto/batch/mod.rs | 35 +++---- src/proto/client/ent.rs | 24 ++++- src/proto/client/mod.rs | 113 +++++++++++++++++--- src/proto/mod.rs | 3 +- src/tls.rs | 6 +- tests/producer.rs | 8 +- tests/real/community.rs | 26 ++--- tests/real/enterprise.rs | 28 ++--- tests/tls.rs | 2 +- 12 files changed, 177 insertions(+), 300 deletions(-) delete mode 100644 src/producer/mod.rs diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index 1b21368a..94adc72a 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -40,7 +40,7 @@ async fn main() { // ensure that we can actually connect to the server; // will create a client, run a handshake with Faktory, // and drop the cliet immediately afterwards; - if let Err(e) = Producer::connect(None).await { + if let Err(e) = Client::connect(None).await { println!("{}", e); process::exit(1); } @@ -55,7 +55,7 @@ async fn main() { let popped = sync::Arc::clone(&popped); tokio::spawn(async move { // make producer and consumer - let mut p = Producer::connect(None).await.unwrap(); + let mut p = Client::connect(None).await.unwrap(); let mut c = ConsumerBuilder::default(); c.register("SomeJob", |_| { Box::pin(async move { diff --git a/src/lib.rs b/src/lib.rs index 0da91716..9858cea6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -35,11 +35,11 @@ //! //! ```no_run //! # tokio_test::block_on(async { -//! use faktory::{Producer, Job}; -//! let mut p = Producer::connect(None).await.unwrap(); -//! p.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); +//! use faktory::{Client, Job}; +//! let mut client = Client::connect(None).await.unwrap(); +//! client.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); //! -//! let (enqueued_count, errors) = p.enqueue_many([Job::new("foobar", vec!["z"]), Job::new("foobar", vec!["z"])]).await.unwrap(); +//! let (enqueued_count, errors) = client.enqueue_many([Job::new("foobar", vec!["z"]), Job::new("foobar", vec!["z"])]).await.unwrap(); //! assert_eq!(enqueued_count, 2); //! assert_eq!(errors, None); //! }); @@ -71,12 +71,10 @@ extern crate serde_derive; pub mod error; mod consumer; -mod producer; mod proto; pub use crate::consumer::{Consumer, ConsumerBuilder, JobRunner}; pub use crate::error::Error; -pub use crate::producer::Producer; pub use crate::proto::{Client, Job, JobBuilder, Reconnect}; #[cfg(feature = "ent")] diff --git a/src/producer/mod.rs b/src/producer/mod.rs deleted file mode 100644 index 8589d816..00000000 --- a/src/producer/mod.rs +++ /dev/null @@ -1,218 +0,0 @@ -use std::collections::HashMap; - -use crate::proto::{Client, Info, Job, Push, PushBulk, QueueAction, QueueControl}; -use crate::Error; -use tokio::io::{AsyncBufReadExt, AsyncRead, AsyncWrite, AsyncWriteExt, BufStream}; -use tokio::net::TcpStream as TokioStream; - -#[cfg(feature = "ent")] -use crate::proto::{Batch, BatchHandle, CommitBatch, OpenBatch}; - -/// `Producer` is used to enqueue new jobs that will in turn be processed by Faktory workers. -/// -/// # Connecting to Faktory -/// -/// To issue jobs, the `Producer` must first be connected to the Faktory server. Exactly how you do -/// that depends on your setup. Faktory suggests using the `FAKTORY_PROVIDER` and `FAKTORY_URL` -/// environment variables (see their docs for more information) with `localhost:7419` as the -/// fallback default. If you want this behavior, pass `None` to -/// [`Producer::connect`](struct.Producer.html#method.connect). If not, you can supply the URL -/// directly to [`Producer::connect`](struct.Producer.html#method.connect) in the form: -/// -/// ```text -/// protocol://[:password@]hostname[:port] -/// ``` -/// -/// -/// # Issuing jobs -/// -/// Most of the lifetime of a `Producer` will be spent creating and enqueueing jobs for Faktory -/// workers. This is done by passing a [`Job`](struct.Job.html) to -/// [`Producer::enqueue`](struct.Producer.html#method.enqueue). The most important part of a `Job` -/// is its `kind`; this field dictates how workers will execute the job when they receive it. The -/// string provided here must match a handler registered on the worker using -/// [`ConsumerBuilder::register`](struct.ConsumerBuilder.html#method.register) (or the equivalent -/// handler registration method in workers written in other languages). -/// -/// Since Faktory workers do not all need to be the same (you could have some written in Rust for -/// performance-critical tasks, some in Ruby for more webby tasks, etc.), it may be the case that a -/// given job can only be executed by some workers (e.g., if they job type is not registered at -/// others). To allow for this, Faktory includes a `labels` field with each job. Jobs will only be -/// sent to workers whose labels (see -/// [`ConsumerBuilder::labels`](struct.ConsumerBuilder.html#method.labels)) match those set in -/// `Job::labels`. -/// -/// # Examples -/// -/// Connecting to an unsecured Faktory server using environment variables -/// -/// ```no_run -/// # tokio_test::block_on(async { -/// use faktory::Producer; -/// let p = Producer::connect(None).await.unwrap(); -/// # }); -/// ``` -/// -/// Connecting to a secured Faktory server using an explicit URL -/// -/// ```no_run -/// # tokio_test::block_on(async { -/// use faktory::Producer; -/// let p = Producer::connect(Some("tcp://:hunter2@localhost:7439")).await.unwrap(); -/// # }) -/// ``` -/// -/// Issuing a job using a `Producer` -/// -/// ```no_run -/// # tokio_test::block_on(async { -/// # use faktory::Producer; -/// # let mut p = Producer::connect(None).await.unwrap(); -/// use faktory::Job; -/// p.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); -/// # }); -/// ``` -/// -pub struct Producer { - c: Client, -} - -impl Producer { - /// Asynchronously enqueue the given job on the Faktory server. - /// - /// Returns `Ok` if the job was successfully queued by the Faktory server. - pub async fn enqueue(&mut self, job: Job) -> Result<(), Error> { - self.c.issue(&Push::from(job)).await?.read_ok().await - } - - /// Enqueue numerous jobs on the Faktory server. - /// - /// Provided you have numerous jobs to submit, using this method will be more efficient as compared - /// to calling [`enqueue`](Producer::enqueue) multiple times. - /// - /// The returned `Ok` result will contain a tuple of enqueued jobs count and an option of a hash map - /// with job ids mapped onto error messages. Therefore `Ok(n, None)` will indicate that all n jobs - /// have been enqueued without errors. - /// - /// Note that this is not an all-or-nothing operation: jobs that contain errors will not be enqueued, - /// while those that are error-free _will_ be enqueued by the Faktory server. - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { - let jobs = jobs.into_iter(); - let jobs_count = jobs.len(); - let errors: HashMap = self - .c - .issue(&PushBulk::from(jobs.collect::>())) - .await? - .read_json() - .await? - .expect("Faktory server sends {} literal when there are no errors"); - if errors.is_empty() { - return Ok((jobs_count, None)); - } - Ok((jobs_count - errors.len(), Some(errors))) - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.c - .issue(&Info) - .await? - .read_json() - .await - .map(|v| v.expect("info command cannot give empty response")) - } - - /// Pause the given queues. - pub async fn queue_pause(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { - self.c - .issue(&QueueControl::new(QueueAction::Pause, queues)) - .await? - .read_ok() - .await - } - - /// Resume the given queues. - pub async fn queue_resume>(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { - self.c - .issue(&QueueControl::new(QueueAction::Resume, queues)) - .await? - .read_ok() - .await - } - - /// Initiate a new batch of jobs. - #[cfg(feature = "ent")] - #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { - let bid = self.c.issue(&batch).await?.read_bid().await?; - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - #[cfg(feature = "ent")] - #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] - pub async fn open_batch(&mut self, bid: String) -> Result>, Error> { - let bid = self - .c - .issue(&OpenBatch::from(bid)) - .await? - .maybe_bid() - .await?; - Ok(bid.map(|bid| BatchHandle::new(bid, self))) - } - - #[cfg(feature = "ent")] - pub(crate) async fn commit_batch(&mut self, bid: String) -> Result<(), Error> { - self.c.issue(&CommitBatch::from(bid)).await?.read_ok().await - } -} - -impl Producer> { - /// Connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { - let buffered = BufStream::new(stream); - let c = Client::connect_with(buffered, pwd).await?; - Ok(Producer { c }) - } -} - -impl Producer> { - /// Create a producer and asynchronously connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - /// - /// If `url` is given, but does not specify a port, it defaults to 7419. - pub async fn connect(url: Option<&str>) -> Result { - let c = Client::connect(url).await?; - Ok(Producer { c }) - } -} diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index 7237c2b6..4e4a2461 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -1,14 +1,11 @@ -#[cfg(doc)] -use crate::Client; - -use crate::{Error, Job, Producer}; +use crate::{Client, Error, Job}; use chrono::{DateTime, Utc}; use derive_builder::Builder; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; mod cmd; -pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; +pub use cmd::{GetBatchStatus, OpenBatch}; /// Batch of jobs. /// @@ -29,9 +26,9 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// ```no_run /// # tokio_test::block_on(async { /// # use faktory::Error; -/// use faktory::{Producer, Job, ent::Batch}; +/// use faktory::{Client, Job, ent::Batch}; /// -/// let mut prod = Producer::connect(None).await?; +/// let mut cl = Client::connect(None).await?; /// let job1 = Job::builder("job_type").build(); /// let job2 = Job::builder("job_type").build(); /// let job_cb = Job::builder("callback_job_type").build(); @@ -40,7 +37,7 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// .description("Batch description") /// .with_complete_callback(job_cb); /// -/// let mut batch = prod.start_batch(batch).await?; +/// let mut batch = cl.start_batch(batch).await?; /// batch.add(job1).await?; /// batch.add(job2).await?; /// batch.commit().await?; @@ -52,9 +49,9 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// Nested batches are also supported: /// ```no_run /// # tokio_test::block_on(async { -/// # use faktory::{Producer, Job, Error}; +/// # use faktory::{Client, Job, Error}; /// # use faktory::ent::Batch; -/// # let mut prod = Producer::connect(None).await?; +/// # let mut cl = Client::connect(None).await?; /// let parent_job1 = Job::builder("job_type").build(); /// let parent_job2 = Job::builder("another_job_type").build(); /// let parent_cb = Job::builder("callback_job_type").build(); @@ -70,7 +67,7 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// .description("Child batch description") /// .with_success_callback(child_cb); /// -/// let mut parent = prod.start_batch(parent_batch).await?; +/// let mut parent = cl.start_batch(parent_batch).await?; /// parent.add(parent_job1).await?; /// parent.add(parent_job2).await?; /// let mut child = parent.start_batch(child_batch).await?; @@ -91,17 +88,17 @@ pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// You can retieve the batch status using a [`Client`]: /// ```no_run /// # use faktory::Error; -/// # use faktory::{Producer, Job, Client}; +/// # use faktory::{Job, Client}; /// # use faktory::ent::{Batch, CallbackState}; /// # tokio_test::block_on(async { -/// let mut prod = Producer::connect(None).await?; +/// let mut cl = Client::connect(None).await?; /// let job = Job::builder("job_type").build(); /// let cb_job = Job::builder("callback_job_type").build(); /// let b = Batch::builder() /// .description("Batch description") /// .with_complete_callback(cb_job); /// -/// let mut b = prod.start_batch(b).await?; +/// let mut b = cl.start_batch(b).await?; /// let bid = b.id().to_string(); /// b.add(job).await?; /// b.commit().await?; @@ -214,7 +211,7 @@ impl Clone for BatchBuilder { /// Represents a newly started or re-opened batch of jobs. pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { bid: String, - prod: &'a mut Producer, + prod: &'a mut Client, } impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { @@ -223,7 +220,7 @@ impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { self.bid.as_ref() } - pub(crate) fn new(bid: String, prod: &mut Producer) -> BatchHandle<'_, S> { + pub(crate) fn new(bid: String, prod: &mut Client) -> BatchHandle<'_, S> { BatchHandle { bid, prod } } @@ -247,7 +244,7 @@ impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { /// /// The Faktory server will not queue any callbacks, unless the batch is committed. /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Producer::open_batch), + /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), /// and extra jobs can be added to it. pub async fn commit(self) -> Result<(), Error> { self.prod.commit_batch(self.bid).await @@ -331,10 +328,10 @@ pub struct BatchStatus { impl<'a> BatchStatus { /// Open the batch for which this `BatchStatus` has been retrieved. /// - /// See [`open_batch`](Producer::open_batch). + /// See [`open_batch`](Client::open_batch). pub async fn open( &self, - prod: &'a mut Producer, + prod: &'a mut Client, ) -> Result>, Error> { prod.open_batch(self.bid.clone()).await } diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs index fcf13a58..1172dda0 100644 --- a/src/proto/client/ent.rs +++ b/src/proto/client/ent.rs @@ -1,5 +1,8 @@ -use super::super::{single, BatchStatus, GetBatchStatus, Progress, ProgressUpdate, Track}; +use super::super::{ + single, BatchStatus, GetBatchStatus, OpenBatch, Progress, ProgressUpdate, Track, +}; use super::{Client, ReadToken}; +use crate::ent::{Batch, BatchHandle}; use crate::error::Error; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; @@ -21,6 +24,25 @@ impl Client { let cmd = GetBatchStatus::from(bid); self.issue(&cmd).await?.read_json().await } + + /// Initiate a new batch of jobs. + pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { + let bid = self.issue(&batch).await?.read_bid().await?; + Ok(BatchHandle::new(bid, self)) + } + + /// Open an already existing batch of jobs. + /// + /// This will not error if a batch with the provided `bid` does not exist, + /// rather `Ok(None)` will be returned. + pub async fn open_batch(&mut self, bid: String) -> Result>, Error> { + let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; + Ok(bid.map(|bid| BatchHandle::new(bid, self))) + } + + pub(crate) async fn commit_batch(&mut self, bid: String) -> Result<(), Error> { + self.issue(&OpenBatch::from(bid)).await?.read_ok().await + } } impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index 3a5feb86..bd894fe4 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -1,16 +1,17 @@ -#[cfg(doc)] -use crate::{Consumer, Producer}; - #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] mod ent; -use super::utils; -use super::{single, Reconnect}; +#[cfg(doc)] +use crate::proto::{BatchStatus, Progress, ProgressUpdate}; + +use super::{single, Info, Push, QueueAction, QueueControl, Reconnect}; +use super::{utils, PushBulk}; use crate::error::{self, Error}; use crate::Job; -use tokio::io::BufStream; +use std::collections::HashMap; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::io::{AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; mod options; @@ -185,6 +186,21 @@ pub(crate) enum HeartbeatStatus { Quiet, } +impl Client> { + /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. + pub async fn connect_with( + stream: S, + pwd: Option, + ) -> Result>, Error> { + let buffered = BufStream::new(stream); + let opts = ClientOptions { + password: pwd, + ..Default::default() + }; + Client::new(buffered, opts).await + } +} + impl Client> { /// Create new [`Client`] and connect to a Faktory server. /// @@ -200,8 +216,7 @@ impl Client> { pub async fn connect(url: Option<&str>) -> Result>, Error> { let url = utils::parse_provided_or_from_env(url)?; let stream = TokioStream::connect(utils::host_from_url(&url)).await?; - let buffered = BufStream::new(stream); - Self::connect_with(buffered, url.password().map(|p| p.to_string())).await + Self::connect_with(stream, url.password().map(|p| p.to_string())).await } } @@ -266,15 +281,6 @@ where Ok(c) } - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with(stream: S, pwd: Option) -> Result, Error> { - let opts = ClientOptions { - password: pwd, - ..Default::default() - }; - Client::new(stream, opts).await - } - pub(crate) async fn issue( &mut self, c: &FC, @@ -293,6 +299,79 @@ where .await } + /// Asynchronously enqueue the given job on the Faktory server. + /// + /// Returns `Ok` if the job was successfully queued by the Faktory server. + pub async fn enqueue(&mut self, job: Job) -> Result<(), Error> { + self.issue(&Push::from(job)).await?.read_ok().await + } + + /// Enqueue numerous jobs on the Faktory server. + /// + /// Provided you have numerous jobs to submit, using this method will be more efficient as compared + /// to calling [`enqueue`](Client::enqueue) multiple times. + /// + /// The returned `Ok` result will contain a tuple of enqueued jobs count and an option of a hash map + /// with job ids mapped onto error messages. Therefore `Ok(n, None)` will indicate that all n jobs + /// have been enqueued without errors. + /// + /// Note that this is not an all-or-nothing operation: jobs that contain errors will not be enqueued, + /// while those that are error-free _will_ be enqueued by the Faktory server. + pub async fn enqueue_many( + &mut self, + jobs: J, + ) -> Result<(usize, Option>), Error> + where + J: IntoIterator, + J::IntoIter: ExactSizeIterator, + { + let jobs = jobs.into_iter(); + let jobs_count = jobs.len(); + let errors: HashMap = self + .issue(&PushBulk::from(jobs.collect::>())) + .await? + .read_json() + .await? + .expect("Faktory server sends {} literal when there are no errors"); + if errors.is_empty() { + return Ok((jobs_count, None)); + } + Ok((jobs_count - errors.len(), Some(errors))) + } + + /// Retrieve information about the running server. + /// + /// The returned value is the result of running the `INFO` command on the server. + pub async fn info(&mut self) -> Result { + self.issue(&Info) + .await? + .read_json() + .await + .map(|v| v.expect("info command cannot give empty response")) + } + + /// Pause the given queues. + pub async fn queue_pause(&mut self, queues: &[Q]) -> Result<(), Error> + where + Q: AsRef + Sync, + { + self.issue(&QueueControl::new(QueueAction::Pause, queues)) + .await? + .read_ok() + .await + } + + /// Resume the given queues. + pub async fn queue_resume>(&mut self, queues: &[Q]) -> Result<(), Error> + where + Q: AsRef + Sync, + { + self.issue(&QueueControl::new(QueueAction::Resume, queues)) + .await? + .read_ok() + .await + } + pub(crate) async fn heartbeat(&mut self) -> Result { single::write_command( &mut self.stream, diff --git a/src/proto/mod.rs b/src/proto/mod.rs index 3db996dc..daf89f8f 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -19,8 +19,7 @@ pub use self::single::ent::{JobState, Progress, ProgressUpdate, ProgressUpdateBu mod batch; #[cfg(feature = "ent")] pub use batch::{ - Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, CommitBatch, GetBatchStatus, - OpenBatch, + Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, GetBatchStatus, OpenBatch, }; /// A stream that can be re-established after failing. diff --git a/src/tls.rs b/src/tls.rs index 30576140..8ec3c7ff 100644 --- a/src/tls.rs +++ b/src/tls.rs @@ -18,10 +18,10 @@ use tokio_rustls::TlsConnector; /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{Producer, TlsStream}; +/// use faktory::{Client, TlsStream}; /// let tls = TlsStream::connect(None).await.unwrap(); -/// let p = Producer::connect_with(tls, None).await.unwrap(); -/// # drop(p); +/// let cl = Client::connect_with(tls, None).await.unwrap(); +/// # drop(cl); /// # }); /// ``` /// diff --git a/tests/producer.rs b/tests/producer.rs index d283da1b..3104c83f 100644 --- a/tests/producer.rs +++ b/tests/producer.rs @@ -10,7 +10,7 @@ use faktory::*; async fn hello() { let mut s = mock::Stream::default(); - let p = Producer::connect_with(s.clone(), None).await.unwrap(); + let p = Client::connect_with(s.clone(), None).await.unwrap(); let written = s.pop_bytes_written(0); eprintln!("{:?}", String::from_utf8(written.clone()).unwrap()); assert!(written.starts_with(b"HELLO {")); @@ -31,7 +31,7 @@ async fn hello() { async fn hello_pwd() { let mut s = mock::Stream::with_salt(1545, "55104dc76695721d"); - let c = Producer::connect_with(s.clone(), Some("foobar".to_string())) + let c = Client::connect_with(s.clone(), Some("foobar".to_string())) .await .unwrap(); let written = s.pop_bytes_written(0); @@ -49,7 +49,7 @@ async fn hello_pwd() { #[tokio::test(flavor = "multi_thread")] async fn enqueue() { let mut s = mock::Stream::default(); - let mut p = Producer::connect_with(s.clone(), None).await.unwrap(); + let mut p = Client::connect_with(s.clone(), None).await.unwrap(); s.ignore(0); s.ok(0); @@ -90,7 +90,7 @@ async fn enqueue() { #[tokio::test(flavor = "multi_thread")] async fn queue_control() { let mut s = mock::Stream::default(); - let mut p = Producer::connect_with(s.clone(), None).await.unwrap(); + let mut p = Client::connect_with(s.clone(), None).await.unwrap(); s.ignore(0); s.ok(0); diff --git a/tests/real/community.rs b/tests/real/community.rs index 8f3248de..736bef1f 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,21 +1,21 @@ extern crate faktory; use crate::skip_check; -use faktory::{ConsumerBuilder, Job, JobBuilder, Producer}; +use faktory::{Client, ConsumerBuilder, Job, JobBuilder}; use serde_json::Value; use std::{io, sync}; #[tokio::test(flavor = "multi_thread")] async fn hello_p() { skip_check!(); - let p = Producer::connect(None).await.unwrap(); + let p = Client::connect(None).await.unwrap(); drop(p); } #[tokio::test(flavor = "multi_thread")] async fn enqueue_job() { skip_check!(); - let mut p = Producer::connect(None).await.unwrap(); + let mut p = Client::connect(None).await.unwrap(); p.enqueue(JobBuilder::new("order").build()).await.unwrap(); } @@ -37,7 +37,7 @@ async fn roundtrip() { Ok(()) }); let mut c = c.connect(None).await.unwrap(); - let mut p = Producer::connect(None).await.unwrap(); + let mut p = Client::connect(None).await.unwrap(); p.enqueue( JobBuilder::new("order") .jid(&jid) @@ -74,7 +74,7 @@ async fn multi() { let mut c = c.connect(None).await.unwrap(); - let mut p = Producer::connect(None).await.unwrap(); + let mut p = Client::connect(None).await.unwrap(); p.enqueue(Job::new(local, vec![Value::from(1), Value::from("foo")]).on_queue(local)) .await .unwrap(); @@ -115,7 +115,7 @@ async fn fail() { let mut c = c.connect(None).await.unwrap(); - let mut p = Producer::connect(None).await.unwrap(); + let mut p = Client::connect(None).await.unwrap(); // note that *enqueueing* the jobs didn't fail! p.enqueue(Job::new(local, vec![Value::from(1), Value::from("foo")]).on_queue(local)) @@ -147,7 +147,7 @@ async fn queue() { }); let mut c = c.connect(None).await.unwrap(); - let mut p = Producer::connect(None).await.unwrap(); + let mut p = Client::connect(None).await.unwrap(); p.enqueue(Job::new(local, vec![Value::from(1)]).on_queue(local)) .await .unwrap(); @@ -175,7 +175,7 @@ async fn test_jobs_pushed_in_bulk() { let local_3 = "test_jobs_pushed_in_bulk_3"; let local_4 = "test_jobs_pushed_in_bulk_4"; - let mut p = Producer::connect(None).await.unwrap(); + let mut p = Client::connect(None).await.unwrap(); let (enqueued_count, errors) = p .enqueue_many(vec![ Job::builder("common").queue(local_1).build(), @@ -265,8 +265,8 @@ async fn assert_args_not_empty(j: Job) -> io::Result<()> { async fn test_jobs_created_with_builder() { skip_check!(); - // prepare a producer ("client" in Faktory terms) and consumer ("worker"): - let mut producer = Producer::connect(None).await.unwrap(); + // prepare a client and a worker: + let mut client = Client::connect(None).await.unwrap(); let mut consumer = ConsumerBuilder::default(); consumer.register("rebuild_index", assert_args_empty); consumer.register("register_order", assert_args_not_empty); @@ -287,9 +287,9 @@ async fn test_jobs_created_with_builder() { job3.queue = "test_jobs_created_with_builder_1".to_string(); // enqueue ... - producer.enqueue(job1).await.unwrap(); - producer.enqueue(job2).await.unwrap(); - producer.enqueue(job3).await.unwrap(); + client.enqueue(job1).await.unwrap(); + client.enqueue(job2).await.unwrap(); + client.enqueue(job3).await.unwrap(); // ... and execute: let had_job = consumer diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index ef2ca46b..5d1e104b 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -42,8 +42,8 @@ async fn ent_expiring_job() { let url = learn_faktory_url(); let local = "ent_expiring_job"; - // prepare a producer ("client" in Faktory terms) and consumer ("worker"): - let mut p = Producer::connect(Some(&url)).await.unwrap(); + // prepare a client and a worker: + let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); c.register("AnExpiringJob", print_job); let mut c = c.connect(Some(&url)).await.unwrap(); @@ -92,7 +92,7 @@ async fn ent_unique_job() { let job_type = "order"; // prepare producer and consumer: - let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); c.register(job_type, print_job); let mut c = c.connect(Some(&url)).await.unwrap(); @@ -208,7 +208,7 @@ async fn ent_unique_job_until_success() { // send a job difficulty level as a job's args and the lattter // will sleep for a corresponding period of time, pretending // to work hard: - let mut producer_a = Producer::connect(Some(&url1)).await.unwrap(); + let mut producer_a = Client::connect(Some(&url1)).await.unwrap(); let mut consumer_a = ConsumerBuilder::default_async(); consumer_a.register(job_type, |job| async move { let args = job.args().to_owned(); @@ -239,7 +239,7 @@ async fn ent_unique_job_until_success() { time::sleep(time::Duration::from_secs(1)).await; // continue - let mut producer_b = Producer::connect(Some(&url)).await.unwrap(); + let mut producer_b = Client::connect(Some(&url)).await.unwrap(); // this one is a 'duplicate' because the job is still // being executed in the spawned thread: @@ -288,7 +288,7 @@ async fn ent_unique_job_until_start() { let url1 = url.clone(); let handle = tokio::spawn(async move { - let mut producer_a = Producer::connect(Some(&url1)).await.unwrap(); + let mut producer_a = Client::connect(Some(&url1)).await.unwrap(); let mut consumer_a = ConsumerBuilder::default_async(); consumer_a.register(job_type, |job| async move { let args = job.args().to_owned(); @@ -324,7 +324,7 @@ async fn ent_unique_job_until_start() { time::sleep(time::Duration::from_secs(1)).await; // the unique lock has been released by this time, so the job is enqueued successfully: - let mut producer_b = Producer::connect(Some(&url)).await.unwrap(); + let mut producer_b = Client::connect(Some(&url)).await.unwrap(); producer_b .enqueue( JobBuilder::new(job_type) @@ -346,7 +346,7 @@ async fn ent_unique_job_bypass_unique_lock() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - let mut producer = Producer::connect(Some(&url)).await.unwrap(); + let mut producer = Client::connect(Some(&url)).await.unwrap(); let queue_name = "ent_unique_job_bypass_unique_lock"; let job1 = Job::builder("order") .queue(queue_name) @@ -405,7 +405,7 @@ async fn test_tracker_can_send_and_retrieve_job_execution_progress() { .expect("job progress tracker created successfully"), )); - let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut p = Client::connect(Some(&url)).await.unwrap(); let job_tackable = JobBuilder::new("order") .args(vec![Value::from("ISBN-13:9781718501850")]) @@ -558,7 +558,7 @@ async fn test_batch_of_jobs_can_be_initiated() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); c.register("thumbnail", |_job| async { Ok::<(), io::Error>(()) }); c.register("clean_up", |_job| async { Ok(()) }); @@ -695,7 +695,7 @@ async fn test_batches_can_be_nested() { let url = learn_faktory_url(); // Set up 'producer', 'consumer', and 'tracker': - let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); c.register("jobtype", |_job| async { Ok::<(), io::Error>(()) }); let mut _c = c.connect(Some(&url)).await.unwrap(); @@ -795,7 +795,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { let url = learn_faktory_url(); // prepare a producer, a consumer of 'order' jobs, and a tracker: - let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = ConsumerBuilder::default(); c.register("order", |_job| async { Ok(()) }); c.register("order_clean_up", |_job| async { Ok::<(), io::Error>(()) }); @@ -886,7 +886,7 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut p = Client::connect(Some(&url)).await.unwrap(); let mut t = Client::connect(Some(&url)).await.unwrap(); let q_name = "test_callback_will_be_queued_upon_commit_even_if_batch_is_empty"; let complete_cb_jobtype = "complete_callback_jobtype"; @@ -959,7 +959,7 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { async fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - let mut p = Producer::connect(Some(&url)).await.unwrap(); + let mut p = Client::connect(Some(&url)).await.unwrap(); let mut t = Client::connect(Some(&url)).await.unwrap(); let mut jobs = some_jobs("order", "test_batch_can_be_reopned_add_extra_jobs_added", 4); let mut callbacks = some_jobs( diff --git a/tests/tls.rs b/tests/tls.rs index 893283d3..56c4ded4 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -55,7 +55,7 @@ async fn roundtrip_tls() { }; let mut c = c.connect_with(tls().await, None).await.unwrap(); - let mut p = Producer::connect_with(tls().await, None).await.unwrap(); + let mut p = Client::connect_with(tls().await, None).await.unwrap(); p.enqueue(Job::new(local, vec!["z"]).on_queue(local)) .await .unwrap(); From 6d11ad9a305b237519c100a21e6d52d2ac2b3e75 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sun, 25 Feb 2024 19:26:14 +0500 Subject: [PATCH 013/175] Fix 'commit_batch' on Client --- src/proto/batch/mod.rs | 14 +++++++------- src/proto/client/ent.rs | 4 ++-- src/proto/mod.rs | 3 ++- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index 4e4a2461..ffc9c7ba 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -5,7 +5,7 @@ use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; mod cmd; -pub use cmd::{GetBatchStatus, OpenBatch}; +pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// Batch of jobs. /// @@ -211,7 +211,7 @@ impl Clone for BatchBuilder { /// Represents a newly started or re-opened batch of jobs. pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { bid: String, - prod: &'a mut Client, + c: &'a mut Client, } impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { @@ -220,8 +220,8 @@ impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { self.bid.as_ref() } - pub(crate) fn new(bid: String, prod: &mut Client) -> BatchHandle<'_, S> { - BatchHandle { bid, prod } + pub(crate) fn new(bid: String, c: &mut Client) -> BatchHandle<'_, S> { + BatchHandle { bid, c } } /// Add the given job to the batch. @@ -231,13 +231,13 @@ impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { /// returned as `Some()`. pub async fn add(&mut self, mut job: Job) -> Result, Error> { let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.prod.enqueue(job).await.map(|_| bid) + self.c.enqueue(job).await.map(|_| bid) } /// Initiate a child batch of jobs. pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { batch.parent_bid = Some(self.bid.clone()); - self.prod.start_batch(batch).await + self.c.start_batch(batch).await } /// Commit this batch. @@ -247,7 +247,7 @@ impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), /// and extra jobs can be added to it. pub async fn commit(self) -> Result<(), Error> { - self.prod.commit_batch(self.bid).await + self.c.commit_batch(self.bid).await } } diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs index 1172dda0..cc252a3a 100644 --- a/src/proto/client/ent.rs +++ b/src/proto/client/ent.rs @@ -1,5 +1,5 @@ use super::super::{ - single, BatchStatus, GetBatchStatus, OpenBatch, Progress, ProgressUpdate, Track, + single, BatchStatus, CommitBatch, GetBatchStatus, OpenBatch, Progress, ProgressUpdate, Track, }; use super::{Client, ReadToken}; use crate::ent::{Batch, BatchHandle}; @@ -41,7 +41,7 @@ impl Client { } pub(crate) async fn commit_batch(&mut self, bid: String) -> Result<(), Error> { - self.issue(&OpenBatch::from(bid)).await?.read_ok().await + self.issue(&CommitBatch::from(bid)).await?.read_ok().await } } diff --git a/src/proto/mod.rs b/src/proto/mod.rs index daf89f8f..3db996dc 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -19,7 +19,8 @@ pub use self::single::ent::{JobState, Progress, ProgressUpdate, ProgressUpdateBu mod batch; #[cfg(feature = "ent")] pub use batch::{ - Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, GetBatchStatus, OpenBatch, + Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, CommitBatch, GetBatchStatus, + OpenBatch, }; /// A stream that can be re-established after failing. From a875a3577488254e4fa4a1cdc6e241bd0bcd826a Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sun, 25 Feb 2024 20:07:31 +0500 Subject: [PATCH 014/175] Consumer -> Worker --- README.md | 42 +++++----- src/bin/loadtest.rs | 6 +- src/lib.rs | 26 +++--- src/proto/client/mod.rs | 4 +- src/proto/client/options.rs | 2 +- src/tls.rs | 5 +- src/{consumer => worker}/builder.rs | 46 +++++------ src/{consumer => worker}/health.rs | 4 +- src/{consumer => worker}/mod.rs | 72 ++++++++-------- src/{consumer => worker}/registries.rs | 0 src/{consumer => worker}/runner.rs | 17 ++-- tests/consumer.rs | 16 ++-- tests/real/community.rs | 34 ++++---- tests/real/enterprise.rs | 110 ++++++++++++++----------- tests/tls.rs | 2 +- 15 files changed, 201 insertions(+), 185 deletions(-) rename src/{consumer => worker}/builder.rs (71%) rename src/{consumer => worker}/health.rs (96%) rename src/{consumer => worker}/mod.rs (85%) rename src/{consumer => worker}/registries.rs (100%) rename src/{consumer => worker}/runner.rs (86%) diff --git a/README.md b/README.md index bd55d9e4..c5eae769 100644 --- a/README.md +++ b/README.md @@ -19,60 +19,64 @@ jobs. A client enqueues a job, Faktory sends the job to an available worker (and they're all busy), the worker executes the job, and eventually reports back to Faktory that the job has completed. -Jobs are self-contained, and consist of a job *type* (a string), arguments for the job, and +Jobs are self-contained, and consist of a job _type_ (a string), arguments for the job, and bits and pieces of metadata. When a job is scheduled for execution, the worker is given this information, and uses the job type to figure out how to execute the job. You can think of job execution as a remote function call (or RPC) where the job type is the name of the function, and the job arguments are, perhaps unsuprisingly, the arguments to the function. -In this crate, you will find bindings both for submitting jobs (clients that *produce* jobs) -and for executing jobs (workers that *consume* jobs). The former can be done by making a -`Producer`, whereas the latter is done with a `Consumer`. See the documentation for each for +In this crate, you will find bindings both for submitting jobs (clients that _produce_ jobs) +and for executing jobs (workers that _consume_ jobs). The former can be done by making a +`Client`, whereas the latter is done with a `Worker`. See the documentation for each for more details on how to use them. ## Encrypted connections (TLS) To connect to a Faktory server hosted over TLS, add the `tls` feature, and see the -documentation for `TlsStream`, which can be supplied to `Producer::connect_with` and -`Consumer::connect_with`. +documentation for `TlsStream`, which can be supplied to `Client::connect_with` and +`WorkerBuilder::connect_with`. ## Examples -If you want to **submit** jobs to Faktory, use `Producer`. +If you want to **submit** jobs to Faktory, use `Client`. ```rust -use faktory::{Producer, Job}; -let mut p = Producer::connect(None).unwrap(); -p.enqueue(Job::new("foobar", vec!["z"])).unwrap(); +use faktory::{Client, Job}; +let mut c = Client::connect(None).await.unwrap(); +c.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); ``` -If you want to **accept** jobs from Faktory, use `Consumer`. +If you want to **accept** jobs from Faktory, use `Worker`. ```rust -use faktory::ConsumerBuilder; +use faktory::WorkerBuilder; use std::io; -let mut c = ConsumerBuilder::default(); -c.register("foobar", |job| -> io::Result<()> { - println!("{:?}", job); - Ok(()) +let mut w = WorkerBuilder::default(); +w.register("foobar", |job| async move { + println!("{:?}", job); + Ok::<(), io::Error>(()) }); -let mut c = c.connect(None).unwrap(); -if let Err(e) = c.run(&["default"]) { +let mut w = w.connect(None).await.unwrap(); +if let Err(e) = w.run(&["default"]).await { println!("worker failed: {}", e); } ``` ## Run test suite locally -First ensure the "Factory" service is running and accepting connections on your machine. +First ensure the "Factory" service is running and accepting connections on your machine. To launch it a [Factory](https://hub.docker.com/r/contribsys/faktory/) container with [docker](https://docs.docker.com/engine/install/), run: + ```bash docker run --rm -it -v faktory-data:/var/lib/faktory -p 127.0.0.1:7419:7419 -p 127.0.0.1:7420:7420 contribsys/faktory:latest /faktory -b :7419 -w :7420 ``` + After that run the tests: + ```bash FAKTORY_URL=tcp://127.0.0.1:7419 cargo test --all-features --locked --all-targets ``` + Please note that setting "FAKTORY_URL" environment variable is required for e2e tests to not be skipped. Provided you have [make](https://www.gnu.org/software/make/#download) installed and `docker` daemon running, diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index 94adc72a..095912ba 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -13,7 +13,7 @@ const QUEUES: &[&str] = &["queue0", "queue1", "queue2", "queue3", "queue4"]; async fn main() { let matches = Command::new("My Super Program (Async)") .version("0.1") - .about("Benchmark the performance of Rust Faktory async consumers and producers") + .about("Benchmark the performance of Rust Faktory async workers and client") .arg( Arg::new("jobs") .help("Number of jobs to run") @@ -23,7 +23,7 @@ async fn main() { ) .arg( Arg::new("threads") - .help("Number of consumers/producers to run") + .help("Number of workers/clients to run") .value_parser(value_parser!(usize)) .index(2) .default_value("10"), @@ -56,7 +56,7 @@ async fn main() { tokio::spawn(async move { // make producer and consumer let mut p = Client::connect(None).await.unwrap(); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register("SomeJob", |_| { Box::pin(async move { let mut rng = rand::thread_rng(); diff --git a/src/lib.rs b/src/lib.rs index 9858cea6..9d41334e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,18 +20,18 @@ //! //! In this crate, you will find bindings both for submitting jobs (clients that *produce* jobs) //! and for executing jobs (workers that *consume* jobs). The former can be done by making a -//! `Producer`, whereas the latter is done with a `Consumer`. See the documentation for each for +//! `Client`, whereas the latter is done with a `Worker`. See the documentation for each for //! more details on how to use them. //! //! # Encrypted connections (TLS) //! //! To connect to a Faktory server hosted over TLS, add the `tls` feature, and see the -//! documentation for `TlsStream`, which can be supplied to `Producer::connect_with` and -//! `Consumer::connect_with`. +//! documentation for `TlsStream`, which can be supplied to [`Client::connect_with`] and +//! [`WorkerBuilder::connect_with`]. //! //! # Examples //! -//! If you want to **submit** jobs to Faktory, use `Producer`. +//! If you want to **submit** jobs to Faktory, use `Client`. //! //! ```no_run //! # tokio_test::block_on(async { @@ -44,19 +44,19 @@ //! assert_eq!(errors, None); //! }); //! ``` -//! If you want to **accept** jobs from Faktory, use `Consumer`. +//! If you want to **accept** jobs from Faktory, use `Worker`. //! //! ```no_run //! # tokio_test::block_on(async { -//! use faktory::ConsumerBuilder; +//! use faktory::WorkerBuilder; //! use std::io; -//! let mut c = ConsumerBuilder::default(); -//! c.register("foobar", |job| Box::pin(async move { +//! let mut w = WorkerBuilder::default(); +//! w.register("foobar", |job| async move { //! println!("{:?}", job); //! Ok::<(), io::Error>(()) -//! })); -//! let mut c = c.connect(None).await.unwrap(); -//! if let Err(e) = c.run(&["default"]).await { +//! }); +//! let mut w = w.connect(None).await.unwrap(); +//! if let Err(e) = w.run(&["default"]).await { //! println!("worker failed: {}", e); //! } //! # }); @@ -70,12 +70,12 @@ extern crate serde_derive; pub mod error; -mod consumer; mod proto; +mod worker; -pub use crate::consumer::{Consumer, ConsumerBuilder, JobRunner}; pub use crate::error::Error; pub use crate::proto::{Client, Job, JobBuilder, Reconnect}; +pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index bd894fe4..b11eb214 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -52,7 +52,7 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// [`Client::enqueue`](Client::enqueue). The most important part of a `Job` /// is its `kind`; this field dictates how workers will execute the job when they receive it. The /// string provided here must match a handler registered on the worker using -/// [`ConsumerBuilder::register`](struct.ConsumerBuilder.html#method.register) (or the equivalent +/// [`WorkerBuilder::register`](struct.WorkerBuilder.html#method.register) (or the equivalent /// handler registration method in workers written in other languages). /// /// Since Faktory workers do not all need to be the same (you could have some written in Rust for @@ -60,7 +60,7 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// given job can only be executed by some workers (e.g., if they job type is not registered at /// others). To allow for this, Faktory includes a `labels` field with each job. Jobs will only be /// sent to workers whose labels (see -/// [`ConsumerBuilder::labels`](struct.ConsumerBuilder.html#method.labels)) match those set in +/// [`WorkerBuilder::labels`](struct.WorkerBuilder.html#method.labels)) match those set in /// `Job::labels`. /// /// # Examples diff --git a/src/proto/client/options.rs b/src/proto/client/options.rs index 67dc0a2a..113cf48e 100644 --- a/src/proto/client/options.rs +++ b/src/proto/client/options.rs @@ -21,7 +21,7 @@ pub(crate) struct ClientOptions { pub(crate) password: Option, /// Whether this client is instatianted for - /// a consumer ("worker" in Faktory terms). + /// a worker (i.e. to consume jobs). pub(crate) is_worker: bool, } diff --git a/src/tls.rs b/src/tls.rs index 8ec3c7ff..b6126df7 100644 --- a/src/tls.rs +++ b/src/tls.rs @@ -1,3 +1,6 @@ +#[cfg(doc)] +use crate::{Client, WorkerBuilder}; + use crate::{proto::utils, Error, Reconnect}; use std::fmt::Debug; use std::io; @@ -11,7 +14,7 @@ use tokio_rustls::TlsConnector; /// A reconnectable asynchronous stream encrypted with TLS. /// -/// This can be used as an argument to `Consumer::connect_with` and `Producer::connect_with` to +/// This can be used as an argument to [`WorkerBuilder::connect_with`] and [`Client::connect_with`] to /// connect to a TLS-secured Faktory server. /// /// # Examples diff --git a/src/consumer/builder.rs b/src/worker/builder.rs similarity index 71% rename from src/consumer/builder.rs rename to src/worker/builder.rs index 9bbcbf9e..eb417ec7 100644 --- a/src/consumer/builder.rs +++ b/src/worker/builder.rs @@ -1,9 +1,6 @@ -use super::{runner::Closure, CallbacksRegistry, Client, Consumer}; +use super::{runner::Closure, CallbacksRegistry, Client, Worker}; use crate::{ - proto::{ - utils::{get_env_url, host_from_url, url_parse}, - ClientOptions, - }, + proto::{utils, ClientOptions}, Error, Job, JobRunner, }; use std::future::Future; @@ -12,26 +9,26 @@ use tokio::net::TcpStream as TokioStream; /// Convenience wrapper for building a Faktory worker. /// -/// See the [`Consumer`] documentation for details. -pub struct ConsumerBuilder { +/// See the [`Worker`] documentation for details. +pub struct WorkerBuilder { opts: ClientOptions, workers_count: usize, callbacks: CallbacksRegistry, } -impl ConsumerBuilder { - /// Create a builder for asynchronous version of `Consumer`. - pub fn default_async() -> ConsumerBuilder { - ConsumerBuilder::default() +impl WorkerBuilder { + /// Create a builder for asynchronous version of `Worker`. + pub fn default_async() -> WorkerBuilder { + WorkerBuilder::default() } } -impl Default for ConsumerBuilder { - /// Create a builder for asynchronous version of `Consumer`. +impl Default for WorkerBuilder { + /// Create a builder for asynchronous version of `ConWorkersumer`. /// - /// See [`ConsumerBuilder`](struct.ConsumerBuilder.html) + /// See [`WorkerBuilder`](struct.WorkerBuilder.html) fn default() -> Self { - ConsumerBuilder { + WorkerBuilder { opts: ClientOptions::default(), workers_count: 1, callbacks: CallbacksRegistry::default(), @@ -39,7 +36,7 @@ impl Default for ConsumerBuilder { } } -impl ConsumerBuilder { +impl WorkerBuilder { /// Set the hostname to use for this worker. /// /// Defaults to the machine's hostname as reported by the operating system. @@ -105,28 +102,25 @@ impl ConsumerBuilder { mut self, stream: S, pwd: Option, - ) -> Result, E>, Error> { + ) -> Result, E>, Error> { self.opts.password = pwd; self.opts.is_worker = true; let buffered = BufStream::new(stream); let client = Client::new(buffered, self.opts).await?; - Ok(Consumer::new(client, self.workers_count, self.callbacks).await) + Ok(Worker::new(client, self.workers_count, self.callbacks).await) } /// Asynchronously connect to a Faktory server. /// - /// See [`connect`](struct.ConsumerBuilder.html#structmethod.connect). + /// See [`connect`](WorkerBuilder::connect). pub async fn connect( self, url: Option<&str>, - ) -> Result, E>, Error> { - let url = match url { - Some(url) => url_parse(url), - None => url_parse(&get_env_url()), - }?; - let stream = TokioStream::connect(host_from_url(&url)).await?; + ) -> Result, E>, Error> { + let url = utils::parse_provided_or_from_env(url)?; + let stream = TokioStream::connect(utils::host_from_url(&url)).await?; let buffered = BufStream::new(stream); let client = Client::new(buffered, self.opts).await?; - Ok(Consumer::new(client, self.workers_count, self.callbacks).await) + Ok(Worker::new(client, self.workers_count, self.callbacks).await) } } diff --git a/src/consumer/health.rs b/src/worker/health.rs similarity index 96% rename from src/consumer/health.rs rename to src/worker/health.rs index 50ff2def..a9f98da1 100644 --- a/src/consumer/health.rs +++ b/src/worker/health.rs @@ -1,4 +1,4 @@ -use super::{Consumer, STATUS_QUIET, STATUS_RUNNING, STATUS_TERMINATING}; +use super::{Worker, STATUS_QUIET, STATUS_RUNNING, STATUS_TERMINATING}; use crate::{proto::HeartbeatStatus, Error, Reconnect}; use std::{ error::Error as StdError, @@ -11,7 +11,7 @@ use tokio::time::sleep as tokio_sleep; impl< S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, E: StdError + 'static + Send, - > Consumer + > Worker { pub(crate) async fn listen_for_heartbeats( &mut self, diff --git a/src/consumer/mod.rs b/src/worker/mod.rs similarity index 85% rename from src/consumer/mod.rs rename to src/worker/mod.rs index 62bc550f..8d5449aa 100644 --- a/src/consumer/mod.rs +++ b/src/worker/mod.rs @@ -13,7 +13,7 @@ mod health; mod registries; mod runner; -pub use builder::ConsumerBuilder; +pub use builder::WorkerBuilder; use registries::{CallbacksRegistry, StatesRegistry}; pub use runner::JobRunner; @@ -21,21 +21,21 @@ pub(crate) const STATUS_RUNNING: usize = 0; pub(crate) const STATUS_QUIET: usize = 1; pub(crate) const STATUS_TERMINATING: usize = 2; -/// `Consumer` is used to run a worker that processes jobs provided by Faktory. +/// `Worker` is used to run a worker that processes jobs provided by Faktory. /// /// # Building the worker /// /// Faktory needs a decent amount of information from its workers, such as a unique worker ID, a /// hostname for the worker, its process ID, and a set of labels used to identify the worker. In /// order to enable setting all these, constructing a worker is a two-step process. You first use a -/// [`ConsumerBuilder`](struct.ConsumerBuilder.html) (which conveniently implements a sensible +/// [`WorkerBuilder`] (which conveniently implements a sensible /// `Default`) to set the worker metadata, as well as to register any job handlers. You then use /// one of the `connect_*` methods to finalize the worker and connect to the Faktory server. /// -/// In most cases, `ConsumerBuilder::default()` will do what you want. You only need to augment it -/// with calls to [`register`](struct.ConsumerBuilder.html#method.register) to register handlers +/// In most cases, [`WorkerBuilder::default()`] will do what you want. You only need to augment it +/// with calls to [`register`](WorkerBuilder::register) to register handlers /// for each of your job types, and then you can connect. If you have different *types* of workers, -/// you may also want to use [`labels`](struct.ConsumerBuilder.html#method.labels) to distinguish +/// you may also want to use [`labels`](WorkerBuilder::labels) to distinguish /// them in the Faktory Web UI. To specify that some jobs should only go to some workers, use /// different queues. /// @@ -63,14 +63,14 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// use the last approach and let the library handle the concurrency for you. /// /// - You can spin up more worker processes by launching your worker program more than once. -/// - You can create more than one `Consumer`. -/// - You can call [`ConsumerBuilder::workers`](struct.ConsumerBuilder.html#method.workers) to set -/// the number of worker threads you'd like the `Consumer` to use internally. +/// - You can create more than one `Worker`. +/// - You can call [`WorkerBuilder::workers`] to set +/// the number of worker threads you'd like the `Worker` to use internally. /// /// # Connecting to Faktory /// -/// To fetch jobs, the `Consumer` must first be connected to the Faktory server. Exactly how you do -/// that depends on your setup. In most cases, you'll want to use `Consumer::connect`, and provide +/// To fetch jobs, the `Worker` must first be connected to the Faktory server. Exactly how you do +/// that depends on your setup. In most cases, you'll want to use [`WorkerBuilder::connect`], and provide /// a connection URL. If you supply a URL, it must be of the form: /// /// ```text @@ -81,7 +81,7 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// their docs for more information) with `localhost:7419` as the fallback default. If you want /// this behavior, pass `None` as the URL. /// -/// See the [`Producer` examples](struct.Producer.html#examples) for examples of how to connect to +/// See the [`Client` examples](struct.Client.html#examples) for examples of how to connect to /// different Factory setups. /// /// # Worker lifecycle @@ -90,9 +90,9 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// /// If all this process is doing is handling jobs, reconnecting on failure, and exiting when told /// to by the Faktory server, you should use -/// [`run_to_completion`](Consumer::run_to_completion). If you want more +/// [`run_to_completion`](Worker::run_to_completion). If you want more /// fine-grained control over the lifetime of your process, you should use -/// [`run`](Consumer::run). See the documentation for each of these +/// [`run`](Worker::run). See the documentation for each of these /// methods for details. /// /// # Examples @@ -102,7 +102,7 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{ConsumerBuilder, Job}; +/// use faktory::{WorkerBuilder, Job}; /// use std::io; /// /// async fn process_job(job: Job) -> io::Result<()> { @@ -110,12 +110,12 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// Ok(()) /// } /// -/// let mut c = ConsumerBuilder::default(); +/// let mut w = WorkerBuilder::default(); /// -/// c.register("foo", process_job); +/// w.register("foo", process_job); /// -/// let mut c = c.connect(None).await.unwrap(); -/// if let Err(e) = c.run(&["default"]).await { +/// let mut w = w.connect(None).await.unwrap(); +/// if let Err(e) = w.run(&["default"]).await { /// println!("worker failed: {}", e); /// } /// # }); @@ -124,34 +124,34 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// Handler can be inlined. /// /// ```no_run -/// # use faktory::ConsumerBuilder; +/// # use faktory::WorkerBuilder; /// # use std::io; -/// let mut c = ConsumerBuilder::default(); -/// c.register("bar", |job| async move { +/// let mut w = WorkerBuilder::default(); +/// w.register("bar", |job| async move { /// println!("{:?}", job); /// Ok::<(), io::Error>(()) /// }); /// ``` /// /// You can also register anything that implements [`JobRunner`] to handle jobs -/// with [`register_runner`](ConsumerBuilder::register_runner). +/// with [`register_runner`](WorkerBuilder::register_runner). /// -pub struct Consumer { +pub struct Worker { c: Client, worker_states: Arc, callbacks: Arc>, terminated: bool, } -impl Consumer { +impl Worker { async fn reconnect(&mut self) -> Result<(), Error> { self.c.reconnect().await } } -impl Consumer { +impl Worker { async fn new(c: Client, workers_count: usize, callbacks: CallbacksRegistry) -> Self { - Consumer { + Worker { c, callbacks: Arc::new(callbacks), worker_states: Arc::new(StatesRegistry::new(workers_count)), @@ -165,9 +165,7 @@ enum Failed { BadJobType(String), } -impl - Consumer -{ +impl Worker { async fn run_job(&mut self, job: Job) -> Result<(), Failed> { let handler = self .callbacks @@ -186,7 +184,7 @@ impl Result<(), Error> { let worker_states = Arc::get_mut(&mut self.worker_states) - .expect("all workers are scoped to &mut of the user-code-visible Consumer"); + .expect("all workers are scoped to &mut of the user-code-visible Worker"); // retry delivering notification about our last job result. // we know there's no leftover thread at this point, so there's no race on the option. @@ -281,10 +279,10 @@ impl Consumer + > Worker { async fn for_worker(&mut self) -> Result { - Ok(Consumer { + Ok(Worker { c: self.c.connect_again().await?, callbacks: Arc::clone(&self.callbacks), worker_states: Arc::clone(&self.worker_states), @@ -320,11 +318,9 @@ impl< /// /// The value in an `Ok` indicates the number of workers that may still be processing jobs. /// - /// Note that if the worker fails, [`reconnect()`](struct.Consumer.html#method.reconnect) - /// should likely be called before calling `run()` again. If an error occurred while reporting - /// a job success or failure, the result will be re-reported to the server without re-executing - /// the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), the - /// worker should **not** try to resume by calling `run` again. This will cause a panic. + /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server + /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), + /// the worker should **not** try to resume by calling `run` again. This will cause a panic. pub async fn run(&mut self, queues: &[Q]) -> Result where Q: AsRef, diff --git a/src/consumer/registries.rs b/src/worker/registries.rs similarity index 100% rename from src/consumer/registries.rs rename to src/worker/registries.rs diff --git a/src/consumer/runner.rs b/src/worker/runner.rs similarity index 86% rename from src/consumer/runner.rs rename to src/worker/runner.rs index 0d6e7aa6..71a6545c 100644 --- a/src/consumer/runner.rs +++ b/src/worker/runner.rs @@ -1,17 +1,20 @@ use crate::Job; use std::future::Future; -/// Implementations of this trait can be registered to run jobs in a `Consumer`. +#[cfg(doc)] +use super::Worker; + +/// Implementations of this trait can be registered to run jobs in a [`Worker`](Worker). /// /// # Example /// /// Create a worker with all default options, register a single handler (for the `foo` job /// type), connect to the Faktory server, and start accepting jobs. -/// The handler is a struct that implements `JobRunner`. +/// The handler is a struct that implements [`JobRunner`]. /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{ConsumerBuilder, JobRunner, Job}; +/// use faktory::{WorkerBuilder, JobRunner, Job}; /// use std::io; /// /// struct MyHandler { @@ -28,13 +31,13 @@ use std::future::Future; /// } /// } /// -/// let mut c = ConsumerBuilder::default(); +/// let mut w = WorkerBuilder::default(); /// let handler = MyHandler { /// config: "bar".to_string(), /// }; -/// c.register_runner("foo", handler); -/// let mut c = c.connect(None).await.unwrap(); -/// if let Err(e) = c.run(&["default"]).await { +/// w.register_runner("foo", handler); +/// let mut w = w.connect(None).await.unwrap(); +/// if let Err(e) = w.run(&["default"]).await { /// println!("worker failed: {}", e); /// } /// }); diff --git a/tests/consumer.rs b/tests/consumer.rs index 1ddca0c6..d615c841 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -11,7 +11,7 @@ use tokio::{spawn, time::sleep}; #[tokio::test(flavor = "multi_thread")] async fn hello() { let mut s = mock::Stream::default(); - let mut c: ConsumerBuilder = ConsumerBuilder::default(); + let mut c: WorkerBuilder = WorkerBuilder::default(); c.hostname("host".to_string()) .wid("wid".to_string()) .labels(vec!["foo".to_string(), "bar".to_string()]); @@ -40,7 +40,7 @@ async fn hello() { async fn hello_pwd() { let mut s = mock::Stream::with_salt(1545, "55104dc76695721d"); - let mut c: ConsumerBuilder = ConsumerBuilder::default(); + let mut c: WorkerBuilder = WorkerBuilder::default(); c.register("never_called", |_j: Job| async move { unreachable!() }); let c = c .connect_with(s.clone(), Some("foobar".to_string())) @@ -61,7 +61,7 @@ async fn hello_pwd() { #[tokio::test(flavor = "multi_thread")] async fn dequeue() { let mut s = mock::Stream::default(); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register("foobar", |job: Job| async move { assert_eq!(job.args(), &["z"]); Ok::<(), io::Error>(()) @@ -100,7 +100,7 @@ async fn dequeue() { #[tokio::test(flavor = "multi_thread")] async fn dequeue_first_empty() { let mut s = mock::Stream::default(); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register("foobar", |job: Job| async move { assert_eq!(job.args(), &["z"]); Ok::<(), io::Error>(()) @@ -155,7 +155,7 @@ async fn dequeue_first_empty() { #[tokio::test(flavor = "multi_thread")] async fn well_behaved() { let mut s = mock::Stream::new(2); // main plus worker - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.wid("wid".to_string()); c.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second @@ -220,7 +220,7 @@ async fn well_behaved() { #[tokio::test(flavor = "multi_thread")] async fn no_first_job() { let mut s = mock::Stream::new(2); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.wid("wid".to_string()); c.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second @@ -286,7 +286,7 @@ async fn no_first_job() { #[tokio::test(flavor = "multi_thread")] async fn well_behaved_many() { let mut s = mock::Stream::new(3); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.workers(2); c.wid("wid".to_string()); c.register("foobar", |_| async move { @@ -362,7 +362,7 @@ async fn well_behaved_many() { #[tokio::test(flavor = "multi_thread")] async fn terminate() { let mut s = mock::Stream::new(2); - let mut c: ConsumerBuilder = ConsumerBuilder::default(); + let mut c: WorkerBuilder = WorkerBuilder::default(); c.wid("wid".to_string()); c.register("foobar", |_| async move { loop { diff --git a/tests/real/community.rs b/tests/real/community.rs index 736bef1f..2cc96903 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,7 +1,7 @@ extern crate faktory; use crate::skip_check; -use faktory::{Client, ConsumerBuilder, Job, JobBuilder}; +use faktory::{Client, Job, JobBuilder, WorkerBuilder}; use serde_json::Value; use std::{io, sync}; @@ -29,7 +29,7 @@ async fn process_order(j: Job) -> Result<(), std::io::Error> { async fn roundtrip() { skip_check!(); let jid = String::from("x-job-id-0123456782"); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register("order", process_order); c.register("image", |job| async move { println!("{:?}", job); @@ -61,7 +61,7 @@ async fn multi() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); - let mut c = ConsumerBuilder::default_async(); + let mut c = WorkerBuilder::default_async(); c.hostname("tester".to_string()).wid(local.to_string()); c.register(local, move |j| { @@ -102,7 +102,7 @@ async fn fail() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(local.to_string()); c.register(local, move |j| { @@ -139,7 +139,7 @@ async fn queue() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(local.to_string()); c.register(local, move |_job| { let tx = sync::Arc::clone(&tx); @@ -233,7 +233,7 @@ async fn test_jobs_pushed_in_bulk() { // Let's check that the two well-formatted jobs // have _really_ been enqueued, i.e. that `enqueue_many` // is not an all-or-nothing operation: - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(local_3.to_string()); c.register("very_special", move |_job| async { Ok::<(), io::Error>(()) @@ -266,12 +266,12 @@ async fn test_jobs_created_with_builder() { skip_check!(); // prepare a client and a worker: - let mut client = Client::connect(None).await.unwrap(); - let mut consumer = ConsumerBuilder::default(); - consumer.register("rebuild_index", assert_args_empty); - consumer.register("register_order", assert_args_not_empty); + let mut cl = Client::connect(None).await.unwrap(); + let mut w = WorkerBuilder::default(); + w.register("rebuild_index", assert_args_empty); + w.register("register_order", assert_args_not_empty); - let mut consumer = consumer.connect(None).await.unwrap(); + let mut w = w.connect(None).await.unwrap(); // prepare some jobs with JobBuilder: let job1 = JobBuilder::new("rebuild_index") @@ -287,24 +287,24 @@ async fn test_jobs_created_with_builder() { job3.queue = "test_jobs_created_with_builder_1".to_string(); // enqueue ... - client.enqueue(job1).await.unwrap(); - client.enqueue(job2).await.unwrap(); - client.enqueue(job3).await.unwrap(); + cl.enqueue(job1).await.unwrap(); + cl.enqueue(job2).await.unwrap(); + cl.enqueue(job3).await.unwrap(); // ... and execute: - let had_job = consumer + let had_job = w .run_one(0, &["test_jobs_created_with_builder_0"]) .await .unwrap(); assert!(had_job); - let had_job = consumer + let had_job = w .run_one(0, &["test_jobs_created_with_builder_1"]) .await .unwrap(); assert!(had_job); - let had_job = consumer + let had_job = w .run_one(0, &["test_jobs_created_with_builder_1"]) .await .unwrap(); diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index 5d1e104b..6616a695 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -44,7 +44,7 @@ async fn ent_expiring_job() { // prepare a client and a worker: let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register("AnExpiringJob", print_job); let mut c = c.connect(Some(&url)).await.unwrap(); @@ -91,9 +91,9 @@ async fn ent_unique_job() { let job_type = "order"; - // prepare producer and consumer: + // prepare client and worker: let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register(job_type, print_job); let mut c = c.connect(Some(&url)).await.unwrap(); @@ -204,13 +204,13 @@ async fn ent_unique_job_until_success() { let url1 = url.clone(); let handle = tokio::spawn(async move { - // prepare producer and consumer, where the former can + // prepare client and worker, where the former can // send a job difficulty level as a job's args and the lattter // will sleep for a corresponding period of time, pretending // to work hard: - let mut producer_a = Client::connect(Some(&url1)).await.unwrap(); - let mut consumer_a = ConsumerBuilder::default_async(); - consumer_a.register(job_type, |job| async move { + let mut client_a = Client::connect(Some(&url1)).await.unwrap(); + let mut worker_a = WorkerBuilder::default_async(); + worker_a.register(job_type, |job| async move { let args = job.args().to_owned(); let mut args = args.iter(); let diffuculty_level = args @@ -223,15 +223,15 @@ async fn ent_unique_job_until_success() { eprintln!("{:?}", job); Ok::<(), io::Error>(()) }); - let mut consumer_a = consumer_a.connect(Some(&url1)).await.unwrap(); + let mut worker_a = worker_a.connect(Some(&url1)).await.unwrap(); let job = JobBuilder::new(job_type) .args(vec![difficulty_level]) .queue(queue_name) .unique_for(unique_for) .unique_until_success() // Faktory's default .build(); - producer_a.enqueue(job).await.unwrap(); - let had_job = consumer_a.run_one(0, &[queue_name]).await.unwrap(); + client_a.enqueue(job).await.unwrap(); + let had_job = worker_a.run_one(0, &[queue_name]).await.unwrap(); assert!(had_job); }); @@ -239,7 +239,7 @@ async fn ent_unique_job_until_success() { time::sleep(time::Duration::from_secs(1)).await; // continue - let mut producer_b = Client::connect(Some(&url)).await.unwrap(); + let mut client_b = Client::connect(Some(&url)).await.unwrap(); // this one is a 'duplicate' because the job is still // being executed in the spawned thread: @@ -250,7 +250,7 @@ async fn ent_unique_job_until_success() { .build(); // as a result: - let res = producer_b.enqueue(job).await.unwrap_err(); + let res = client_b.enqueue(job).await.unwrap_err(); if let error::Error::Protocol(error::Protocol::UniqueConstraintViolation { msg }) = res { assert_eq!(msg, "Job not unique"); } else { @@ -261,7 +261,7 @@ async fn ent_unique_job_until_success() { // Now that the job submitted in a spawned thread has been successfully executed // (with ACK sent to server), the producer 'B' can push another one: - producer_b + client_b .enqueue( JobBuilder::new(job_type) .args(vec![difficulty_level]) @@ -288,9 +288,9 @@ async fn ent_unique_job_until_start() { let url1 = url.clone(); let handle = tokio::spawn(async move { - let mut producer_a = Client::connect(Some(&url1)).await.unwrap(); - let mut consumer_a = ConsumerBuilder::default_async(); - consumer_a.register(job_type, |job| async move { + let mut client_a = Client::connect(Some(&url1)).await.unwrap(); + let mut worker_a = WorkerBuilder::default_async(); + worker_a.register(job_type, |job| async move { let args = job.args().to_owned(); let mut args = args.iter(); let diffuculty_level = args @@ -303,8 +303,8 @@ async fn ent_unique_job_until_start() { eprintln!("{:?}", job); Ok::<(), io::Error>(()) }); - let mut consumer_a = consumer_a.connect(Some(&url1)).await.unwrap(); - producer_a + let mut worker_a = worker_a.connect(Some(&url1)).await.unwrap(); + client_a .enqueue( JobBuilder::new(job_type) .args(vec![difficulty_level]) @@ -316,7 +316,7 @@ async fn ent_unique_job_until_start() { .await .unwrap(); // as soon as the job is fetched, the unique lock gets released - let had_job = consumer_a.run_one(0, &[queue_name]).await.unwrap(); + let had_job = worker_a.run_one(0, &[queue_name]).await.unwrap(); assert!(had_job); }); @@ -324,8 +324,8 @@ async fn ent_unique_job_until_start() { time::sleep(time::Duration::from_secs(1)).await; // the unique lock has been released by this time, so the job is enqueued successfully: - let mut producer_b = Client::connect(Some(&url)).await.unwrap(); - producer_b + let mut client_b = Client::connect(Some(&url)).await.unwrap(); + client_b .enqueue( JobBuilder::new(job_type) .args(vec![difficulty_level]) @@ -379,7 +379,7 @@ async fn ent_unique_job_bypass_unique_lock() { // let's consume three times from the queue to verify that the first two jobs // have been enqueued for real, while the last one has not. - let mut c = ConsumerBuilder::default_async(); + let mut c = WorkerBuilder::default_async(); c.register("order", print_job); let mut c = c.connect(Some(&url)).await.unwrap(); @@ -424,7 +424,7 @@ async fn test_tracker_can_send_and_retrieve_job_execution_progress() { p.enqueue(job_tackable).await.expect("enqueued"); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); { let job_id = job_id.clone(); @@ -495,7 +495,7 @@ async fn test_tracker_can_send_and_retrieve_job_execution_progress() { // 'Faktory' will be keeping last known update for at least 30 minutes: assert_eq!(progress.percent, Some(33)); - // But it actually knows the job's real status, since the consumer (worker) + // But it actually knows the job's real status, since the worker // informed it immediately after finishing with the job: assert_eq!(progress.state, JobState::Success); @@ -559,7 +559,7 @@ async fn test_batch_of_jobs_can_be_initiated() { let url = learn_faktory_url(); let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register("thumbnail", |_job| async { Ok::<(), io::Error>(()) }); c.register("clean_up", |_job| async { Ok(()) }); let mut c = c.connect(Some(&url)).await.unwrap(); @@ -694,9 +694,9 @@ async fn test_batches_can_be_nested() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - // Set up 'producer', 'consumer', and 'tracker': + // Set up 'client', 'worker', and 'tracker': let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register("jobtype", |_job| async { Ok::<(), io::Error>(()) }); let mut _c = c.connect(Some(&url)).await.unwrap(); let mut t = Client::connect(Some(&url)) @@ -794,13 +794,13 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - // prepare a producer, a consumer of 'order' jobs, and a tracker: - let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = ConsumerBuilder::default(); - c.register("order", |_job| async { Ok(()) }); - c.register("order_clean_up", |_job| async { Ok::<(), io::Error>(()) }); - let mut c = c.connect(Some(&url)).await.unwrap(); - let mut t = Client::connect(Some(&url)).await.unwrap(); + // prepare a client, a worker of 'order' jobs, and a tracker: + let mut cl = Client::connect(Some(&url)).await.unwrap(); + let mut tr = Client::connect(Some(&url)).await.unwrap(); + let mut w = WorkerBuilder::default(); + w.register("order", |_job| async { Ok(()) }); + w.register("order_clean_up", |_job| async { Ok::<(), io::Error>(()) }); + let mut c = w.connect(Some(&url)).await.unwrap(); let mut jobs = some_jobs( "order", @@ -814,7 +814,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { ); // start a 'batch': - let mut b = p + let mut b = cl .start_batch( Batch::builder() .description("Orders processing workload") @@ -830,7 +830,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { } // check this batch's status: - let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); + let s = tr.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 3); assert_eq!(s.pending, 3); assert_eq!(s.success_callback_state, CallbackState::Pending); @@ -850,7 +850,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { ); // check this batch's status again: - let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); + let s = tr.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.total, 3); assert_eq!(s.pending, 0); assert_eq!(s.failed, 0); @@ -866,7 +866,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { b.commit().await.unwrap(); // ... and check batch status: - let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); + let s = cl.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.success_callback_state, CallbackState::Enqueued); // finally, let's consume from the success callbacks queue ... @@ -876,7 +876,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { ); // ... and see the final status: - let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); + let s = cl.get_batch_status(bid.clone()).await.unwrap().unwrap(); assert_eq!(s.success_callback_state, CallbackState::FinishedOk); } @@ -886,14 +886,14 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { skip_if_not_enterprise!(); let url = learn_faktory_url(); - let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut t = Client::connect(Some(&url)).await.unwrap(); + let mut cl = Client::connect(Some(&url)).await.unwrap(); + let mut tracker = Client::connect(Some(&url)).await.unwrap(); let q_name = "test_callback_will_be_queued_upon_commit_even_if_batch_is_empty"; let complete_cb_jobtype = "complete_callback_jobtype"; let success_cb_jobtype = "success_cb_jobtype"; let complete_cb = some_jobs(complete_cb_jobtype, q_name, 1).next().unwrap(); let success_cb = some_jobs(success_cb_jobtype, q_name, 1).next().unwrap(); - let b = p + let b = cl .start_batch( Batch::builder() .description("Orders processing workload") @@ -903,7 +903,11 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { .unwrap(); let bid = b.id().to_owned(); - let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); + let s = tracker + .get_batch_status(bid.clone()) + .await + .unwrap() + .unwrap(); assert_eq!(s.total, 0); // no jobs in the batch; assert_eq!(s.success_callback_state, CallbackState::Pending); assert_eq!(s.complete_callback_state, CallbackState::Pending); @@ -913,7 +917,11 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { // let's give the Faktory server some time: thread::sleep(time::Duration::from_secs(2)); - let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); + let s = tracker + .get_batch_status(bid.clone()) + .await + .unwrap() + .unwrap(); assert_eq!(s.total, 0); // again, there are no jobs in the batch ... // The docs say "If you don't push any jobs into the batch, any callbacks will fire immediately upon BATCH COMMIT." @@ -921,7 +929,7 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { assert_eq!(s.complete_callback_state, CallbackState::Enqueued); assert_eq!(s.success_callback_state, CallbackState::Pending); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.register(complete_cb_jobtype, |_job| async { Ok(()) }); c.register(success_cb_jobtype, |_job| async { Err(io::Error::new( @@ -934,7 +942,11 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { assert_had_one!(&mut c, q_name); // complete callback consumed - let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); + let s = tracker + .get_batch_status(bid.clone()) + .await + .unwrap() + .unwrap(); assert_eq!(s.total, 0); match s.complete_callback_state { CallbackState::FinishedOk => {} @@ -946,7 +958,11 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { } assert_had_one!(&mut c, q_name); // success callback consumed - let s = t.get_batch_status(bid.clone()).await.unwrap().unwrap(); + let s = tracker + .get_batch_status(bid.clone()) + .await + .unwrap() + .unwrap(); assert_eq!(s.total, 0); assert_eq!(s.complete_callback_state, CallbackState::FinishedOk); // Still `Enqueued` due to the fact that it was not finished with success. diff --git a/tests/tls.rs b/tests/tls.rs index 56c4ded4..54b175e8 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -27,7 +27,7 @@ async fn roundtrip_tls() { let local = "roundtrip_tls"; let (tx, rx) = sync::mpsc::channel(); - let mut c = ConsumerBuilder::default(); + let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(local.to_string()); c.register_runner(local, fixtures::JobHandler::new(tx)); From a1c613aac1b536fb25fcd9b09567921b9f3d333c Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Tue, 27 Feb 2024 00:47:13 +0500 Subject: [PATCH 015/175] Add JobId struct --- src/proto/single/id.rs | 48 +++++++++++++++++++++++++++++++++++++++++ src/proto/single/mod.rs | 14 ++++++------ 2 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 src/proto/single/id.rs diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs new file mode 100644 index 00000000..36e23f2d --- /dev/null +++ b/src/proto/single/id.rs @@ -0,0 +1,48 @@ +use super::utils; +use std::ops::{Deref, DerefMut}; + +/// Job identifier. +/// +/// The Faktory server expects a [`jid`](struct.Job.html#structfield.jid) of a reasonable length +/// (at least 8 chars), which you should take into account when creating a new instance of `JobId`. +/// If you do not have any domain, product or organisation specific requirements, you may prefer +/// to have a random job identifier generated for you with [`random`](JobId::random). +#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] +pub struct JobId(String); + +impl JobId { + /// Internally, generates a 16-char long random string. + pub fn random() -> Self { + Self(utils::gen_random_jid()) + } +} + +impl From for JobId +where + S: AsRef, +{ + fn from(value: S) -> Self { + JobId(value.as_ref().to_owned()) + } +} + +impl Deref for JobId { + type Target = String; + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl DerefMut for JobId { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } +} + +impl Into for JobId { + fn into(self) -> String { + self.0 + } +} + +// ----------------------------------------------------- diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index 6fdc3a86..ce0582a1 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -5,6 +5,7 @@ use std::collections::HashMap; use tokio::io::{AsyncBufRead, AsyncWriteExt}; mod cmd; +mod id; mod resp; mod utils; @@ -12,8 +13,9 @@ mod utils; #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] pub mod ent; -pub use self::cmd::*; -pub use self::resp::*; +pub use cmd::*; +pub use id::JobId; +pub use resp::*; pub(crate) use self::utils::gen_random_wid; @@ -66,8 +68,8 @@ const JOB_DEFAULT_BACKTRACE: usize = 0; )] pub struct Job { /// The job's unique identifier. - #[builder(default = "utils::gen_random_jid()")] - pub(crate) jid: String, + #[builder(default = "JobId::random()")] + pub(crate) jid: JobId, /// The queue this job belongs to. Usually `default`. #[builder(default = "JOB_DEFAULT_QUEUE.into()")] @@ -236,7 +238,7 @@ impl Job { } /// This job's id. - pub fn id(&self) -> &str { + pub fn id(&self) -> &JobId { &self.jid } @@ -284,7 +286,7 @@ mod test { let job_args = vec!["ISBN-13:9781718501850"]; let job = JobBuilder::new(job_kind).args(job_args.clone()).build(); - assert!(job.jid != "".to_owned()); + assert!(job.jid != "".into()); assert!(job.queue == JOB_DEFAULT_QUEUE.to_string()); assert_eq!(job.kind, job_kind); assert_eq!(job.args, job_args); From 008126d024e969cecf5412fc3f0f332955193f6b Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Tue, 27 Feb 2024 10:15:47 +0500 Subject: [PATCH 016/175] Use JobId in lib --- src/lib.rs | 2 +- src/proto/client/ent.rs | 5 +++-- src/proto/client/mod.rs | 10 +++++----- src/proto/mod.rs | 4 +++- src/proto/single/cmd.rs | 25 +++++++++++-------------- src/proto/single/ent/cmd.rs | 4 ++-- src/proto/single/ent/progress.rs | 18 ++++++++++-------- src/proto/single/id.rs | 6 ------ src/worker/mod.rs | 10 +++++----- src/worker/registries.rs | 10 +++++----- tests/real/enterprise.rs | 4 ++-- 11 files changed, 47 insertions(+), 51 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 9d41334e..db6f2076 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -74,7 +74,7 @@ mod proto; mod worker; pub use crate::error::Error; -pub use crate::proto::{Client, Job, JobBuilder, Reconnect}; +pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect}; pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; #[cfg(feature = "ent")] diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs index cc252a3a..d9375dd6 100644 --- a/src/proto/client/ent.rs +++ b/src/proto/client/ent.rs @@ -1,5 +1,6 @@ use super::super::{ - single, BatchStatus, CommitBatch, GetBatchStatus, OpenBatch, Progress, ProgressUpdate, Track, + single, BatchStatus, CommitBatch, GetBatchStatus, JobId, OpenBatch, Progress, ProgressUpdate, + Track, }; use super::{Client, ReadToken}; use crate::ent::{Batch, BatchHandle}; @@ -14,7 +15,7 @@ impl Client { } /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: String) -> Result, Error> { + pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { let cmd = Track::Get(jid); self.issue(&cmd).await?.read_json().await } diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index b11eb214..d74c098b 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -102,8 +102,8 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{Client, ent::JobState}; -/// let job_id = String::from("W8qyVle9vXzUWQOf"); +/// use faktory::{Client, JobId, ent::JobState}; +/// let job_id = JobId::from("W8qyVle9vXzUWQOf"); /// let mut cl = Client::connect(None).await?; /// if let Some(progress) = cl.get_progress(job_id).await? { /// if let JobState::Success = progress.state { @@ -120,10 +120,10 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{Client, ent::ProgressUpdateBuilder}; -/// let jid = String::from("W8qyVle9vXzUWQOf"); +/// use faktory::{Client, JobId, ent::ProgressUpdateBuilder}; +/// let jid = JobId::from("W8qyVle9vXzUWQOf"); /// let mut cl = Client::connect(None).await?; -/// let progress = ProgressUpdateBuilder::new(&jid) +/// let progress = ProgressUpdateBuilder::new(jid) /// .desc("Almost done...".to_owned()) /// .percent(99) /// .build(); diff --git a/src/proto/mod.rs b/src/proto/mod.rs index 3db996dc..72d5a178 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -9,7 +9,9 @@ pub(crate) use client::{ClientOptions, HeartbeatStatus, EXPECTED_PROTOCOL_VERSIO mod single; -pub use single::{Ack, Fail, Info, Job, JobBuilder, Push, PushBulk, QueueAction, QueueControl}; +pub use single::{ + Ack, Fail, Info, Job, JobBuilder, JobId, Push, PushBulk, QueueAction, QueueControl, +}; pub(crate) mod utils; #[cfg(feature = "ent")] diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index ff531e05..45641aaf 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -1,4 +1,5 @@ -use crate::{error::Error, Job}; +use crate::error::Error; +use crate::proto::{Job, JobId}; use std::error::Error as StdError; use tokio::io::AsyncWriteExt; @@ -53,13 +54,13 @@ impl FaktoryCommand for Info { #[derive(Serialize)] pub struct Ack { #[serde(rename = "jid")] - job_id: String, + job_id: JobId, } -impl Ack { - pub fn new>(job_id: S) -> Ack { +impl From<&JobId> for Ack { + fn from(job_id: &JobId) -> Self { Ack { - job_id: job_id.into(), + job_id: job_id.to_owned(), } } } @@ -86,7 +87,7 @@ self_to_cmd!(Heartbeat, "BEAT"); #[derive(Serialize, Clone)] pub struct Fail { #[serde(rename = "jid")] - job_id: String, + job_id: JobId, #[serde(rename = "errtype")] kind: String, message: String, @@ -95,13 +96,9 @@ pub struct Fail { } impl Fail { - pub fn new, S2: Into, S3: Into>( - job_id: S1, - kind: S2, - message: S3, - ) -> Self { + pub fn new(job_id: JobId, kind: impl Into, message: impl Into) -> Self { Fail { - job_id: job_id.into(), + job_id, kind: kind.into(), message: message.into(), backtrace: Vec::new(), @@ -109,7 +106,7 @@ impl Fail { } // "unknown" is the errtype used by the go library too - pub fn generic, S2: Into>(job_id: S1, message: S2) -> Self { + pub fn generic>(job_id: JobId, message: S) -> Self { Fail::new(job_id, "unknown", message) } @@ -117,7 +114,7 @@ impl Fail { self.backtrace = lines; } - pub fn generic_with_backtrace(jid: String, e: E) -> Self + pub fn generic_with_backtrace(jid: JobId, e: E) -> Self where E: StdError, { diff --git a/src/proto/single/ent/cmd.rs b/src/proto/single/ent/cmd.rs index b522bb89..acb38c8f 100644 --- a/src/proto/single/ent/cmd.rs +++ b/src/proto/single/ent/cmd.rs @@ -1,12 +1,12 @@ use super::ProgressUpdate; use crate::error::Error; -use crate::proto::single::FaktoryCommand; +use crate::proto::{single::FaktoryCommand, JobId}; use tokio::io::AsyncWriteExt; #[derive(Debug, Clone)] pub enum Track { Set(ProgressUpdate), - Get(String), + Get(JobId), } #[async_trait::async_trait] diff --git a/src/proto/single/ent/progress.rs b/src/proto/single/ent/progress.rs index ede5d838..49304a5a 100644 --- a/src/proto/single/ent/progress.rs +++ b/src/proto/single/ent/progress.rs @@ -1,3 +1,5 @@ +use crate::proto::single::JobId; + use super::utils; use chrono::{DateTime, Utc}; use derive_builder::Builder; @@ -15,7 +17,7 @@ use derive_builder::Builder; pub struct ProgressUpdate { /// Id of the tracked job. #[builder(setter(custom))] - pub jid: String, + pub jid: JobId, /// Percentage of the job's completion. #[serde(skip_serializing_if = "Option::is_none")] @@ -38,7 +40,7 @@ pub struct ProgressUpdate { impl ProgressUpdate { /// Create an instance of `ProgressUpdate` for the job with this ID specifying its completion percentage. - pub fn set(jid: impl Into, percent: u8) -> ProgressUpdate { + pub fn set(jid: JobId, percent: u8) -> ProgressUpdate { ProgressUpdate::builder(jid).percent(percent).build() } @@ -46,7 +48,7 @@ impl ProgressUpdate { /// /// Equivalent to creating a [new](struct.ProgressUpdateBuilder.html#method.new) /// `ProgressUpdateBuilder`. - pub fn builder(jid: impl Into) -> ProgressUpdateBuilder { + pub fn builder(jid: JobId) -> ProgressUpdateBuilder { ProgressUpdateBuilder::new(jid) } } @@ -59,9 +61,9 @@ impl ProgressUpdateBuilder { } /// Create a new instance of `JobBuilder` - pub fn new(jid: impl Into) -> ProgressUpdateBuilder { + pub fn new(jid: JobId) -> ProgressUpdateBuilder { ProgressUpdateBuilder { - jid: Some(jid.into()), + jid: Some(jid), ..ProgressUpdateBuilder::create_empty() } } @@ -120,7 +122,7 @@ impl std::fmt::Display for JobState { #[derive(Debug, Clone, Deserialize)] pub struct Progress { /// Id of the tracked job. - pub jid: String, + pub jid: JobId, /// Job's state. pub state: JobState, @@ -141,7 +143,7 @@ impl Progress { /// /// This will copy the [`desc`](Progress::desc) from the `Progress` (retrieved) over to `ProgressUpdate` (to be sent). pub fn update_percent(&self, percent: u8) -> ProgressUpdate { - ProgressUpdate::builder(&self.jid) + ProgressUpdate::builder(self.jid.clone()) .desc(self.desc.clone()) .percent(percent) .build() @@ -149,6 +151,6 @@ impl Progress { /// Create an instance of `ProgressUpdateBuilder` for the job. pub fn update_builder(&self) -> ProgressUpdateBuilder { - ProgressUpdateBuilder::new(&self.jid) + ProgressUpdateBuilder::new(self.jid.clone()) } } diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs index 36e23f2d..95ea0ab8 100644 --- a/src/proto/single/id.rs +++ b/src/proto/single/id.rs @@ -39,10 +39,4 @@ impl DerefMut for JobId { } } -impl Into for JobId { - fn into(self) -> String { - self.0 - } -} - // ----------------------------------------------------- diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 8d5449aa..16b52888 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -1,7 +1,7 @@ use super::proto::{Client, Reconnect}; use crate::{ proto::{Ack, Fail}, - Error, Job, + Error, Job, JobId, }; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; @@ -178,8 +178,8 @@ impl) -> Result<(), Error> { - self.c.issue(&Ack::new(jid)).await?.read_ok().await + async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { + self.c.issue(&Ack::from(&jid)).await?.read_ok().await } async fn report_on_all_workers(&mut self) -> Result<(), Error> { @@ -192,7 +192,7 @@ impl self.c.issue(&Ack::new(jid)).await, + Ok(ref jid) => self.c.issue(&Ack::from(jid)).await, Err(ref fail) => self.c.issue(fail).await, }; @@ -230,7 +230,7 @@ impl r.read_ok().await, Err(_) => continue, diff --git a/src/worker/registries.rs b/src/worker/registries.rs index 9cec6c4f..a10cebe2 100644 --- a/src/worker/registries.rs +++ b/src/worker/registries.rs @@ -1,5 +1,5 @@ use super::runner::BoxedJobRunner; -use crate::proto::Fail; +use crate::proto::{Fail, JobId}; use fnv::FnvHashMap; use std::{ ops::{Deref, DerefMut}, @@ -33,8 +33,8 @@ impl Default for CallbacksRegistry { #[derive(Default)] pub(crate) struct WorkerState { - pub(crate) last_job_result: Option>, - pub(crate) running_job: Option, + pub(crate) last_job_result: Option>, + pub(crate) running_job: Option, } pub(crate) struct StatesRegistry(Vec>); @@ -57,11 +57,11 @@ impl StatesRegistry { Self((0..workers_count).map(|_| Default::default()).collect()) } - pub(crate) fn register_running(&self, worker: usize, jid: String) { + pub(crate) fn register_running(&self, worker: usize, jid: JobId) { self[worker].lock().expect("lock acquired").running_job = Some(jid); } - pub(crate) fn register_success(&self, worker: usize, jid: String) { + pub(crate) fn register_success(&self, worker: usize, jid: JobId) { self[worker].lock().expect("lock acquired").last_job_result = Some(Ok(jid)); } diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index 6616a695..f2b70193 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -441,7 +441,7 @@ async fn test_tracker_can_send_and_retrieve_job_execution_progress() { // 'an internal server error occurred: tracking subsystem is only available in Faktory Enterprise' assert!(t .set_progress( - ProgressUpdate::builder(&job_id.clone()) + ProgressUpdate::builder(job_id.clone()) .desc("Still processing...".to_owned()) .percent(32) .build(), @@ -450,7 +450,7 @@ async fn test_tracker_can_send_and_retrieve_job_execution_progress() { .is_ok()); // Let's update the progress once again, to check the 'set_progress' shortcut: assert!(t - .set_progress(ProgressUpdate::set(&job_id.clone(), 33)) + .set_progress(ProgressUpdate::set(job_id.clone(), 33)) .await .is_ok()); From 9a56dea39ae44a14ef51bdac84833a23eb90d6f4 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Tue, 27 Feb 2024 10:50:47 +0500 Subject: [PATCH 017/175] Use WorkerId new-type --- src/lib.rs | 2 +- src/proto/client/mod.rs | 6 ++-- src/proto/client/options.rs | 4 ++- src/proto/mod.rs | 2 +- src/proto/single/cmd.rs | 8 ++--- src/proto/single/id.rs | 64 ++++++++++++++++++++++++++----------- src/proto/single/mod.rs | 4 +-- src/worker/builder.rs | 4 +-- tests/consumer.rs | 10 +++--- tests/real/community.rs | 8 ++--- tests/tls.rs | 2 +- 11 files changed, 71 insertions(+), 43 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index db6f2076..5e765d30 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -74,7 +74,7 @@ mod proto; mod worker; pub use crate::error::Error; -pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect}; +pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect, WorkerId}; pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; #[cfg(feature = "ent")] diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index d74c098b..f3461c17 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -8,7 +8,7 @@ use crate::proto::{BatchStatus, Progress, ProgressUpdate}; use super::{single, Info, Push, QueueAction, QueueControl, Reconnect}; use super::{utils, PushBulk}; use crate::error::{self, Error}; -use crate::Job; +use crate::{Job, WorkerId}; use std::collections::HashMap; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; @@ -254,7 +254,7 @@ where self.opts.hostname = Some(hostname); let pid = self.opts.pid.unwrap_or_else(|| std::process::id() as usize); self.opts.pid = Some(pid); - let wid = self.opts.wid.clone().unwrap_or_else(single::gen_random_wid); + let wid = self.opts.wid.clone().unwrap_or_else(WorkerId::random); self.opts.wid = Some(wid); hello.hostname = Some(self.opts.hostname.clone().unwrap()); @@ -375,7 +375,7 @@ where pub(crate) async fn heartbeat(&mut self) -> Result { single::write_command( &mut self.stream, - &single::Heartbeat::new(&**self.opts.wid.as_ref().unwrap()), + &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), ) .await?; diff --git a/src/proto/client/options.rs b/src/proto/client/options.rs index 113cf48e..71b432fb 100644 --- a/src/proto/client/options.rs +++ b/src/proto/client/options.rs @@ -1,3 +1,5 @@ +use crate::proto::WorkerId; + #[derive(Clone)] pub(crate) struct ClientOptions { /// Hostname to advertise to server. @@ -10,7 +12,7 @@ pub(crate) struct ClientOptions { /// Worker ID to advertise to server. /// Defaults to a GUID. - pub(crate) wid: Option, + pub(crate) wid: Option, /// Labels to advertise to se/// A stream that can be re-established after failing.rver. /// Defaults to ["rust"]. diff --git a/src/proto/mod.rs b/src/proto/mod.rs index 72d5a178..acc98dab 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -10,7 +10,7 @@ pub(crate) use client::{ClientOptions, HeartbeatStatus, EXPECTED_PROTOCOL_VERSIO mod single; pub use single::{ - Ack, Fail, Info, Job, JobBuilder, JobId, Push, PushBulk, QueueAction, QueueControl, + Ack, Fail, Info, Job, JobBuilder, JobId, Push, PushBulk, QueueAction, QueueControl, WorkerId, }; pub(crate) mod utils; diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index 45641aaf..03e3cdc6 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -1,5 +1,5 @@ use crate::error::Error; -use crate::proto::{Job, JobId}; +use crate::proto::{Job, JobId, WorkerId}; use std::error::Error as StdError; use tokio::io::AsyncWriteExt; @@ -71,11 +71,11 @@ self_to_cmd!(Ack, "ACK"); #[derive(Serialize)] pub struct Heartbeat { - wid: String, + wid: WorkerId, } impl Heartbeat { - pub fn new>(wid: S) -> Heartbeat { + pub fn new>(wid: S) -> Heartbeat { Heartbeat { wid: wid.into() } } } @@ -180,7 +180,7 @@ pub struct Hello { #[serde(skip_serializing_if = "Option::is_none")] pub hostname: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub wid: Option, + pub wid: Option, #[serde(skip_serializing_if = "Option::is_none")] pub pid: Option, #[serde(skip_serializing_if = "Vec::is_empty")] diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs index 95ea0ab8..b5fc216f 100644 --- a/src/proto/single/id.rs +++ b/src/proto/single/id.rs @@ -1,42 +1,70 @@ use super::utils; use std::ops::{Deref, DerefMut}; +macro_rules! string_wrapper_impls { + ($new_type:ident) => { + impl From for $new_type + where + S: AsRef, + { + fn from(value: S) -> Self { + $new_type(value.as_ref().to_owned()) + } + } + + impl Deref for $new_type { + type Target = String; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + + impl DerefMut for $new_type { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + }; +} + /// Job identifier. /// /// The Faktory server expects a [`jid`](struct.Job.html#structfield.jid) of a reasonable length /// (at least 8 chars), which you should take into account when creating a new instance of `JobId`. +/// /// If you do not have any domain, product or organisation specific requirements, you may prefer /// to have a random job identifier generated for you with [`random`](JobId::random). #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] pub struct JobId(String); impl JobId { - /// Internally, generates a 16-char long random string. + /// Internally, generates a 16-char long random ASCII string. pub fn random() -> Self { Self(utils::gen_random_jid()) } } -impl From for JobId -where - S: AsRef, -{ - fn from(value: S) -> Self { - JobId(value.as_ref().to_owned()) - } -} +string_wrapper_impls!(JobId); -impl Deref for JobId { - type Target = String; - fn deref(&self) -> &Self::Target { - &self.0 - } -} +// ----------------------------------------------------- + +/// Worker identifier. +/// +/// The Faktory server expects a non-empty string as a worker identifier, +/// see [`wid`](struct.WorkerBuilder.html#method.wid). +/// +/// If you do not have any domain, product or organisation specific requirements, you may prefer +/// to have a random job identifier generated for you with [`random`](WorkerId::random). +#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] +pub struct WorkerId(String); -impl DerefMut for JobId { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 +impl WorkerId { + /// Internally, generates a 32-char long random ASCII string. + pub fn random() -> Self { + Self(utils::gen_random_wid()) } } +string_wrapper_impls!(WorkerId); + // ----------------------------------------------------- diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index ce0582a1..c3e1cfb3 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -14,11 +14,9 @@ mod utils; pub mod ent; pub use cmd::*; -pub use id::JobId; +pub use id::{JobId, WorkerId}; pub use resp::*; -pub(crate) use self::utils::gen_random_wid; - const JOB_DEFAULT_QUEUE: &str = "default"; const JOB_DEFAULT_RESERVED_FOR_SECS: usize = 600; const JOB_DEFAULT_RETRY_COUNT: isize = 25; diff --git a/src/worker/builder.rs b/src/worker/builder.rs index eb417ec7..7b95ef95 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -1,7 +1,7 @@ use super::{runner::Closure, CallbacksRegistry, Client, Worker}; use crate::{ proto::{utils, ClientOptions}, - Error, Job, JobRunner, + Error, Job, JobRunner, WorkerId, }; use std::future::Future; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; @@ -48,7 +48,7 @@ impl WorkerBuilder { /// Set a unique identifier for this worker. /// /// Defaults to a randomly generated 32-char ASCII string. - pub fn wid(&mut self, wid: String) -> &mut Self { + pub fn wid(&mut self, wid: WorkerId) -> &mut Self { self.opts.wid = Some(wid); self } diff --git a/tests/consumer.rs b/tests/consumer.rs index d615c841..f6fade87 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -13,7 +13,7 @@ async fn hello() { let mut s = mock::Stream::default(); let mut c: WorkerBuilder = WorkerBuilder::default(); c.hostname("host".to_string()) - .wid("wid".to_string()) + .wid("wid".into()) .labels(vec!["foo".to_string(), "bar".to_string()]); c.register("never_called", |_j: Job| async move { unreachable!() }); let c = c.connect_with(s.clone(), None).await.unwrap(); @@ -156,7 +156,7 @@ async fn dequeue_first_empty() { async fn well_behaved() { let mut s = mock::Stream::new(2); // main plus worker let mut c = WorkerBuilder::default(); - c.wid("wid".to_string()); + c.wid("wid".into()); c.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; @@ -221,7 +221,7 @@ async fn well_behaved() { async fn no_first_job() { let mut s = mock::Stream::new(2); let mut c = WorkerBuilder::default(); - c.wid("wid".to_string()); + c.wid("wid".into()); c.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; @@ -288,7 +288,7 @@ async fn well_behaved_many() { let mut s = mock::Stream::new(3); let mut c = WorkerBuilder::default(); c.workers(2); - c.wid("wid".to_string()); + c.wid("wid".into()); c.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; @@ -363,7 +363,7 @@ async fn well_behaved_many() { async fn terminate() { let mut s = mock::Stream::new(2); let mut c: WorkerBuilder = WorkerBuilder::default(); - c.wid("wid".to_string()); + c.wid("wid".into()); c.register("foobar", |_| async move { loop { sleep(Duration::from_secs(5)).await; diff --git a/tests/real/community.rs b/tests/real/community.rs index 2cc96903..6854efd0 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -62,7 +62,7 @@ async fn multi() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); let mut c = WorkerBuilder::default_async(); - c.hostname("tester".to_string()).wid(local.to_string()); + c.hostname("tester".to_string()).wid(local.into()); c.register(local, move |j| { let tx = sync::Arc::clone(&tx); @@ -103,7 +103,7 @@ async fn fail() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local.to_string()); + c.hostname("tester".to_string()).wid(local.into()); c.register(local, move |j| { let tx = sync::Arc::clone(&tx); @@ -140,7 +140,7 @@ async fn queue() { let tx = sync::Arc::new(sync::Mutex::new(tx)); let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local.to_string()); + c.hostname("tester".to_string()).wid(local.into()); c.register(local, move |_job| { let tx = sync::Arc::clone(&tx); Box::pin(async move { tx.lock().unwrap().send(true) }) @@ -234,7 +234,7 @@ async fn test_jobs_pushed_in_bulk() { // have _really_ been enqueued, i.e. that `enqueue_many` // is not an all-or-nothing operation: let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local_3.to_string()); + c.hostname("tester".to_string()).wid(local_3.into()); c.register("very_special", move |_job| async { Ok::<(), io::Error>(()) }); diff --git a/tests/tls.rs b/tests/tls.rs index 54b175e8..13f7bc8f 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -29,7 +29,7 @@ async fn roundtrip_tls() { let (tx, rx) = sync::mpsc::channel(); let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local.to_string()); + c.hostname("tester".to_string()).wid(local.into()); c.register_runner(local, fixtures::JobHandler::new(tx)); let tls = || async { From 566d2a2014b5dde45779ad965d3fbd2193961e52 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Tue, 27 Feb 2024 11:15:07 +0500 Subject: [PATCH 018/175] Split Batch mod into logic constructs --- src/proto/batch/handle.rs | 46 +++++++++++++ src/proto/batch/mod.rs | 140 +++----------------------------------- src/proto/batch/status.rs | 91 +++++++++++++++++++++++++ 3 files changed, 145 insertions(+), 132 deletions(-) create mode 100644 src/proto/batch/handle.rs create mode 100644 src/proto/batch/status.rs diff --git a/src/proto/batch/handle.rs b/src/proto/batch/handle.rs new file mode 100644 index 00000000..1a1f0327 --- /dev/null +++ b/src/proto/batch/handle.rs @@ -0,0 +1,46 @@ +use super::Batch; +use crate::{Client, Error, Job}; +use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; + +/// Represents a newly started or re-opened batch of jobs. +pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { + bid: String, + c: &'a mut Client, +} + +impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { + /// ID issued by the Faktory server to this batch. + pub fn id(&self) -> &str { + self.bid.as_ref() + } + + pub(crate) fn new(bid: String, c: &mut Client) -> BatchHandle<'_, S> { + BatchHandle { bid, c } + } + + /// Add the given job to the batch. + /// + /// Should the submitted job - for whatever reason - already have a `bid` key present in its custom hash, + /// this value will be overwritten by the ID of the batch this job is being added to with the old value + /// returned as `Some()`. + pub async fn add(&mut self, mut job: Job) -> Result, Error> { + let bid = job.custom.insert("bid".into(), self.bid.clone().into()); + self.c.enqueue(job).await.map(|_| bid) + } + + /// Initiate a child batch of jobs. + pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { + batch.parent_bid = Some(self.bid.clone()); + self.c.start_batch(batch).await + } + + /// Commit this batch. + /// + /// The Faktory server will not queue any callbacks, unless the batch is committed. + /// Committing an empty batch will make the server queue the callback(s) right away. + /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), + /// and extra jobs can be added to it. + pub async fn commit(self) -> Result<(), Error> { + self.c.commit_batch(self.bid).await + } +} diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index ffc9c7ba..86c98bad 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -1,11 +1,16 @@ -use crate::{Client, Error, Job}; -use chrono::{DateTime, Utc}; +#[cfg(doc)] +use crate::Client; + +use crate::Job; use derive_builder::Builder; -use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; mod cmd; +mod handle; +mod status; pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; +pub use handle::BatchHandle; +pub use status::{BatchStatus, CallbackState}; /// Batch of jobs. /// @@ -208,135 +213,6 @@ impl Clone for BatchBuilder { } } -/// Represents a newly started or re-opened batch of jobs. -pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - bid: String, - c: &'a mut Client, -} - -impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { - /// ID issued by the Faktory server to this batch. - pub fn id(&self) -> &str { - self.bid.as_ref() - } - - pub(crate) fn new(bid: String, c: &mut Client) -> BatchHandle<'_, S> { - BatchHandle { bid, c } - } - - /// Add the given job to the batch. - /// - /// Should the submitted job - for whatever reason - already have a `bid` key present in its custom hash, - /// this value will be overwritten by the ID of the batch this job is being added to with the old value - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { - batch.parent_bid = Some(self.bid.clone()); - self.c.start_batch(batch).await - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - pub async fn commit(self) -> Result<(), Error> { - self.c.commit_batch(self.bid).await - } -} - -// Not documented, but existing de fakto and also mentioned in the official client -// https://github.com/contribsys/faktory/blob/main/client/batch.go#L17-L19 -/// State of a `callback` job of a [`Batch`]. -#[derive(Copy, Clone, Debug, Deserialize, Eq, PartialEq)] -#[non_exhaustive] -pub enum CallbackState { - /// Not enqueued yet. - #[serde(rename = "")] - Pending, - /// Enqueued by the server, because the jobs belonging to this batch have finished executing. - /// If a callback has been consumed, it's status is still `Enqueued`. - /// If a callback has finished with failure, it's status remains `Enqueued`. - #[serde(rename = "1")] - Enqueued, - /// The enqueued callback job has been consumed and successfully executed. - #[serde(rename = "2")] - FinishedOk, -} - -impl std::fmt::Display for CallbackState { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - use CallbackState::*; - let s = match self { - Pending => "Pending", - Enqueued => "Enqueued", - FinishedOk => "FinishedOk", - }; - write!(f, "{}", s) - } -} - -/// Batch status retrieved from Faktory server. -#[derive(Deserialize, Debug)] -pub struct BatchStatus { - // Fields "bid", "created_at", "description", "total", "pending", and "failed" - // are described in the docs: https://github.com/contribsys/faktory/wiki/Ent-Batches#status - /// Id of this batch. - pub bid: String, - - /// Batch creation date and time. - pub created_at: DateTime, - - /// Batch description, if any. - pub description: Option, - - /// Number of jobs in this batch. - pub total: usize, - - /// Number of pending jobs. - pub pending: usize, - - /// Number of failed jobs. - pub failed: usize, - - // The official golang client also mentions "parent_bid', "complete_st", and "success_st": - // https://github.com/contribsys/faktory/blob/main/client/batch.go#L8-L22 - /// Id of the parent batch, provided this batch is a child ("nested") batch. - pub parent_bid: Option, - - /// State of the `complete` callback. - /// - /// See [with_complete_callback](struct.BatchBuilder.html#method.with_complete_callback). - #[serde(rename = "complete_st")] - pub complete_callback_state: CallbackState, - - /// State of the `success` callback. - /// - /// See [with_success_callback](struct.BatchBuilder.html#method.with_success_callback). - #[serde(rename = "success_st")] - pub success_callback_state: CallbackState, -} - -#[cfg(feature = "ent")] -#[cfg_attr(docsrs, doc(cfg(feature = "ent")))] -impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { - prod.open_batch(self.bid.clone()).await - } -} - #[cfg(test)] mod test { use std::str::FromStr; diff --git a/src/proto/batch/status.rs b/src/proto/batch/status.rs new file mode 100644 index 00000000..38931d8f --- /dev/null +++ b/src/proto/batch/status.rs @@ -0,0 +1,91 @@ +#[cfg(doc)] +use super::Batch; + +use super::BatchHandle; +use crate::{Client, Error}; +use chrono::{DateTime, Utc}; +use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; + +// Not documented, but existing de fakto and also mentioned in the official client +// https://github.com/contribsys/faktory/blob/main/client/batch.go#L17-L19 +/// State of a `callback` job of a [`Batch`]. +#[derive(Copy, Clone, Debug, Deserialize, Eq, PartialEq)] +#[non_exhaustive] +pub enum CallbackState { + /// Not enqueued yet. + #[serde(rename = "")] + Pending, + /// Enqueued by the server, because the jobs belonging to this batch have finished executing. + /// If a callback has been consumed, it's status is still `Enqueued`. + /// If a callback has finished with failure, it's status remains `Enqueued`. + #[serde(rename = "1")] + Enqueued, + /// The enqueued callback job has been consumed and successfully executed. + #[serde(rename = "2")] + FinishedOk, +} + +impl std::fmt::Display for CallbackState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + use CallbackState::*; + let s = match self { + Pending => "Pending", + Enqueued => "Enqueued", + FinishedOk => "FinishedOk", + }; + write!(f, "{}", s) + } +} + +/// Batch status retrieved from Faktory server. +#[derive(Deserialize, Debug)] +pub struct BatchStatus { + // Fields "bid", "created_at", "description", "total", "pending", and "failed" + // are described in the docs: https://github.com/contribsys/faktory/wiki/Ent-Batches#status + /// Id of this batch. + pub bid: String, + + /// Batch creation date and time. + pub created_at: DateTime, + + /// Batch description, if any. + pub description: Option, + + /// Number of jobs in this batch. + pub total: usize, + + /// Number of pending jobs. + pub pending: usize, + + /// Number of failed jobs. + pub failed: usize, + + // The official golang client also mentions "parent_bid', "complete_st", and "success_st": + // https://github.com/contribsys/faktory/blob/main/client/batch.go#L8-L22 + /// Id of the parent batch, provided this batch is a child ("nested") batch. + pub parent_bid: Option, + + /// State of the `complete` callback. + /// + /// See [with_complete_callback](struct.BatchBuilder.html#method.with_complete_callback). + #[serde(rename = "complete_st")] + pub complete_callback_state: CallbackState, + + /// State of the `success` callback. + /// + /// See [with_success_callback](struct.BatchBuilder.html#method.with_success_callback). + #[serde(rename = "success_st")] + pub success_callback_state: CallbackState, +} + +impl<'a> BatchStatus { + /// Open the batch for which this `BatchStatus` has been retrieved. + /// + /// See [`open_batch`](Client::open_batch). + pub async fn open( + &self, + prod: &'a mut Client, + ) -> Result>, Error> { + prod.open_batch(self.bid.clone()).await + } +} From b7560bae57a7bbc77d3aa8c23ccdcdb83beea49d Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Tue, 27 Feb 2024 11:57:17 +0500 Subject: [PATCH 019/175] Use BatchId for operaions with Batch --- src/lib.rs | 2 +- src/proto/batch/cmd.rs | 15 +++++++-------- src/proto/batch/handle.rs | 12 ++++++------ src/proto/batch/mod.rs | 6 +++--- src/proto/batch/status.rs | 7 ++++--- src/proto/client/ent.rs | 12 ++++++------ src/proto/client/mod.rs | 4 ++-- src/proto/mod.rs | 3 +++ src/proto/single/id.rs | 16 ++++++++++++++++ src/proto/single/mod.rs | 10 +++++++--- src/proto/single/resp.rs | 5 ++++- tests/real/enterprise.rs | 10 +++++----- 12 files changed, 64 insertions(+), 38 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 5e765d30..5797c55f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -82,7 +82,7 @@ pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; /// Constructs only available with the enterprise version of Faktory. pub mod ent { pub use crate::proto::{ - Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, JobState, Progress, + Batch, BatchBuilder, BatchHandle, BatchId, BatchStatus, CallbackState, JobState, Progress, ProgressUpdate, ProgressUpdateBuilder, }; } diff --git a/src/proto/batch/cmd.rs b/src/proto/batch/cmd.rs index 106e0b8f..bd238736 100644 --- a/src/proto/batch/cmd.rs +++ b/src/proto/batch/cmd.rs @@ -1,6 +1,5 @@ -use crate::ent::Batch; -use crate::proto::single::FaktoryCommand; -use crate::Error; +use crate::error::Error; +use crate::proto::{single::FaktoryCommand, Batch, BatchId}; use tokio::io::AsyncWriteExt; #[async_trait::async_trait] @@ -15,8 +14,8 @@ impl FaktoryCommand for Batch { macro_rules! batch_cmd { ($structure:ident, $cmd:expr) => { - impl From for $structure { - fn from(value: String) -> Self { + impl From for $structure { + fn from(value: BatchId) -> Self { $structure(value) } } @@ -33,11 +32,11 @@ macro_rules! batch_cmd { }; } -pub struct CommitBatch(String); +pub struct CommitBatch(BatchId); batch_cmd!(CommitBatch, "COMMIT"); -pub struct GetBatchStatus(String); +pub struct GetBatchStatus(BatchId); batch_cmd!(GetBatchStatus, "STATUS"); -pub struct OpenBatch(String); +pub struct OpenBatch(BatchId); batch_cmd!(OpenBatch, "OPEN"); diff --git a/src/proto/batch/handle.rs b/src/proto/batch/handle.rs index 1a1f0327..b8550a94 100644 --- a/src/proto/batch/handle.rs +++ b/src/proto/batch/handle.rs @@ -1,20 +1,20 @@ -use super::Batch; -use crate::{Client, Error, Job}; +use crate::error::Error; +use crate::proto::{Batch, BatchId, Client, Job}; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; /// Represents a newly started or re-opened batch of jobs. pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - bid: String, + bid: BatchId, c: &'a mut Client, } impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { /// ID issued by the Faktory server to this batch. - pub fn id(&self) -> &str { - self.bid.as_ref() + pub fn id(&self) -> &BatchId { + &self.bid } - pub(crate) fn new(bid: String, c: &mut Client) -> BatchHandle<'_, S> { + pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { BatchHandle { bid, c } } diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index 86c98bad..da5e656e 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -1,7 +1,7 @@ #[cfg(doc)] use crate::Client; -use crate::Job; +use crate::proto::{BatchId, Job}; use derive_builder::Builder; mod cmd; @@ -104,7 +104,7 @@ pub use status::{BatchStatus, CallbackState}; /// .with_complete_callback(cb_job); /// /// let mut b = cl.start_batch(b).await?; -/// let bid = b.id().to_string(); +/// let bid = b.id().to_owned(); /// b.add(job).await?; /// b.commit().await?; /// @@ -131,7 +131,7 @@ pub use status::{BatchStatus, CallbackState}; pub struct Batch { #[serde(skip_serializing_if = "Option::is_none")] #[builder(setter(skip))] - parent_bid: Option, + parent_bid: Option, /// Batch description for Faktory WEB UI. #[serde(skip_serializing_if = "Option::is_none")] diff --git a/src/proto/batch/status.rs b/src/proto/batch/status.rs index 38931d8f..9d52e38f 100644 --- a/src/proto/batch/status.rs +++ b/src/proto/batch/status.rs @@ -2,7 +2,8 @@ use super::Batch; use super::BatchHandle; -use crate::{Client, Error}; +use crate::error::Error; +use crate::proto::{BatchId, Client}; use chrono::{DateTime, Utc}; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; @@ -43,7 +44,7 @@ pub struct BatchStatus { // Fields "bid", "created_at", "description", "total", "pending", and "failed" // are described in the docs: https://github.com/contribsys/faktory/wiki/Ent-Batches#status /// Id of this batch. - pub bid: String, + pub bid: BatchId, /// Batch creation date and time. pub created_at: DateTime, @@ -63,7 +64,7 @@ pub struct BatchStatus { // The official golang client also mentions "parent_bid', "complete_st", and "success_st": // https://github.com/contribsys/faktory/blob/main/client/batch.go#L8-L22 /// Id of the parent batch, provided this batch is a child ("nested") batch. - pub parent_bid: Option, + pub parent_bid: Option, /// State of the `complete` callback. /// diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs index d9375dd6..e0876d09 100644 --- a/src/proto/client/ent.rs +++ b/src/proto/client/ent.rs @@ -3,7 +3,7 @@ use super::super::{ Track, }; use super::{Client, ReadToken}; -use crate::ent::{Batch, BatchHandle}; +use crate::ent::{Batch, BatchHandle, BatchId}; use crate::error::Error; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; @@ -21,7 +21,7 @@ impl Client { } /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: String) -> Result, Error> { + pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { let cmd = GetBatchStatus::from(bid); self.issue(&cmd).await?.read_json().await } @@ -36,22 +36,22 @@ impl Client { /// /// This will not error if a batch with the provided `bid` does not exist, /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: String) -> Result>, Error> { + pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; Ok(bid.map(|bid| BatchHandle::new(bid, self))) } - pub(crate) async fn commit_batch(&mut self, bid: String) -> Result<(), Error> { + pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { self.issue(&CommitBatch::from(bid)).await?.read_ok().await } } impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { + pub(crate) async fn read_bid(self) -> Result { single::read_bid(&mut self.0.stream).await } - pub(crate) async fn maybe_bid(self) -> Result, Error> { + pub(crate) async fn maybe_bid(self) -> Result, Error> { use crate::error; let bid_read_res = single::read_bid(&mut self.0.stream).await; diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index f3461c17..4bd2afd2 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -136,8 +136,8 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::Client; -/// let bid = String::from("W8qyVle9vXzUWQOg"); +/// use faktory::{Client, ent::BatchId}; +/// let bid = BatchId::from("W8qyVle9vXzUWQOg"); /// let mut cl = Client::connect(None).await?; /// if let Some(status) = cl.get_batch_status(bid).await? { /// println!("This batch created at {}", status.created_at); diff --git a/src/proto/mod.rs b/src/proto/mod.rs index acc98dab..ea23861b 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -17,6 +17,9 @@ pub(crate) mod utils; #[cfg(feature = "ent")] pub use self::single::ent::{JobState, Progress, ProgressUpdate, ProgressUpdateBuilder, Track}; +#[cfg(feature = "ent")] +pub use self::single::BatchId; + #[cfg(feature = "ent")] mod batch; #[cfg(feature = "ent")] diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs index b5fc216f..fada2bfe 100644 --- a/src/proto/single/id.rs +++ b/src/proto/single/id.rs @@ -68,3 +68,19 @@ impl WorkerId { string_wrapper_impls!(WorkerId); // ----------------------------------------------------- + +/// Batch identifier. +/// +/// This is a wrapper over the string identifier issued by the Faktory server. +/// Only used for operations with [`Batch`](struct.Batch.html) in Enterprise Faktory. +#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] +pub struct BatchId(String); + +string_wrapper_impls!(BatchId); + +use serde_json::Value; +impl From for Value { + fn from(value: BatchId) -> Self { + value.0.into() + } +} diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index c3e1cfb3..1fa4669f 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -9,13 +9,17 @@ mod id; mod resp; mod utils; +pub use cmd::*; +pub use id::{JobId, WorkerId}; +pub use resp::*; + #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] pub mod ent; -pub use cmd::*; -pub use id::{JobId, WorkerId}; -pub use resp::*; +#[cfg(feature = "ent")] +#[cfg_attr(docsrs, doc(cfg(feature = "ent")))] +pub use id::BatchId; const JOB_DEFAULT_QUEUE: &str = "default"; const JOB_DEFAULT_RESERVED_FOR_SECS: usize = 600; diff --git a/src/proto/single/resp.rs b/src/proto/single/resp.rs index 095c5511..118f4547 100644 --- a/src/proto/single/resp.rs +++ b/src/proto/single/resp.rs @@ -1,3 +1,6 @@ +#[cfg(feature = "ent")] +use crate::ent::BatchId; + use crate::error::{self, Error}; use tokio::io::{AsyncBufReadExt, AsyncReadExt}; @@ -62,7 +65,7 @@ pub async fn read_json(r: R) -> Result { +pub async fn read_bid(r: R) -> Result { match read(r).await? { RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { expected: "non-empty blob representation of batch id", diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index f2b70193..bffe0fb4 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -594,7 +594,7 @@ async fn test_batch_of_jobs_can_be_initiated() { let mut b = p.start_batch(batch).await.unwrap(); // let's remember batch id: - let bid = b.id().to_string(); + let bid = b.id().to_owned(); assert!(b.add(job_1).await.unwrap().is_none()); assert!(b.add(job_2).await.unwrap().is_none()); @@ -822,7 +822,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { ) .await .unwrap(); - let bid = b.id().to_string(); + let bid = b.id().to_owned(); // push 3 jobs onto this batch, but DO NOT commit the batch: for _ in 0..3 { @@ -989,7 +989,7 @@ async fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { .with_success_callback(callbacks.next().unwrap()); let mut b = p.start_batch(b).await.unwrap(); - let bid = b.id().to_string(); + let bid = b.id().to_owned(); b.add(jobs.next().unwrap()).await.unwrap(); // 1 job b.add(jobs.next().unwrap()).await.unwrap(); // 2 jobs @@ -1000,7 +1000,7 @@ async fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { // ############################## SUBTEST 0 ########################################## // Let's try to open/reopen a batch we have never declared: let b = p - .open_batch(String::from("non-existent-batch-id")) + .open_batch(BatchId::from("non-existent-batch-id")) .await .unwrap(); // The server will error back on this, with "No such batch ", but @@ -1067,7 +1067,7 @@ async fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { nested_callbacks.next().unwrap(), ); let nested_batch = b.start_batch(nested_batch_declaration).await.unwrap(); - let nested_bid = nested_batch.id().to_string(); + let nested_bid = nested_batch.id().to_owned(); // committing the nested batch without any jobs // since those are just not relevant for this test: nested_batch.commit().await.unwrap(); From 2fb7c632e1e578570939b968868c21774b1b066e Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Wed, 28 Feb 2024 11:59:03 +0500 Subject: [PATCH 020/175] re-export async trait --- src/lib.rs | 1 + src/worker/runner.rs | 10 +++++----- tests/tls.rs | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 5797c55f..52d007b2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -76,6 +76,7 @@ mod worker; pub use crate::error::Error; pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect, WorkerId}; pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; +pub use async_trait; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 71a6545c..63e0c0b7 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -1,9 +1,9 @@ -use crate::Job; -use std::future::Future; - #[cfg(doc)] use super::Worker; +use crate::Job; +use std::future::Future; + /// Implementations of this trait can be registered to run jobs in a [`Worker`](Worker). /// /// # Example @@ -14,14 +14,14 @@ use super::Worker; /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{WorkerBuilder, JobRunner, Job}; +/// use faktory::{async_trait::async_trait, Job, JobRunner, WorkerBuilder}; /// use std::io; /// /// struct MyHandler { /// config: String, /// } /// -/// #[async_trait::async_trait] +/// #[async_trait] /// impl JobRunner for MyHandler { /// type Error = io::Error; /// async fn run(&self, job: Job) -> Result<(), Self::Error> { diff --git a/tests/tls.rs b/tests/tls.rs index 13f7bc8f..d7943018 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -72,7 +72,7 @@ mod fixtures { pub use tls::TestServerCertVerifier; mod handler { - use faktory::*; + use faktory::{async_trait::async_trait, Job, JobRunner}; use std::{ io, @@ -100,7 +100,7 @@ mod fixtures { } } - #[async_trait::async_trait] + #[async_trait] impl JobRunner for JobHandler { type Error = io::Error; From 755d4523aaaf57dc3ff692463807a8da53443e9d Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Wed, 28 Feb 2024 12:03:35 +0500 Subject: [PATCH 021/175] Make 'jid', 'kind' and 'args' public on Job struct --- src/proto/single/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index 1fa4669f..815c6a12 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -71,7 +71,7 @@ const JOB_DEFAULT_BACKTRACE: usize = 0; pub struct Job { /// The job's unique identifier. #[builder(default = "JobId::random()")] - pub(crate) jid: JobId, + pub jid: JobId, /// The queue this job belongs to. Usually `default`. #[builder(default = "JOB_DEFAULT_QUEUE.into()")] @@ -80,11 +80,11 @@ pub struct Job { /// The job's type. Called `kind` because `type` is reserved. #[serde(rename = "jobtype")] #[builder(setter(custom))] - pub(crate) kind: String, + pub kind: String, /// The arguments provided for this job. #[builder(setter(custom), default = "Vec::new()")] - pub(crate) args: Vec, + pub args: Vec, /// When this job was created. // note that serializing works correctly here since the default chrono serialization From 65110cf69855cf5d1d835b375ce2d3c9e6fb7e73 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Fri, 1 Mar 2024 08:24:26 +0500 Subject: [PATCH 022/175] Clean up in worker crate --- src/worker/mod.rs | 24 ++++++------- src/worker/registries.rs | 77 ---------------------------------------- src/worker/state.rs | 70 ++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 89 deletions(-) delete mode 100644 src/worker/registries.rs create mode 100644 src/worker/state.rs diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 16b52888..0a4ce0c0 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -1,8 +1,7 @@ use super::proto::{Client, Reconnect}; -use crate::{ - proto::{Ack, Fail}, - Error, Job, JobId, -}; +use crate::error::Error; +use crate::proto::{Ack, Fail, Job, JobId}; +use fnv::FnvHashMap; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; @@ -10,17 +9,18 @@ use tokio::task::JoinHandle; mod builder; mod health; -mod registries; mod runner; +mod state; pub use builder::WorkerBuilder; -use registries::{CallbacksRegistry, StatesRegistry}; pub use runner::JobRunner; pub(crate) const STATUS_RUNNING: usize = 0; pub(crate) const STATUS_QUIET: usize = 1; pub(crate) const STATUS_TERMINATING: usize = 2; +type CallbacksRegistry = FnvHashMap>; + /// `Worker` is used to run a worker that processes jobs provided by Faktory. /// /// # Building the worker @@ -138,7 +138,7 @@ pub(crate) const STATUS_TERMINATING: usize = 2; /// pub struct Worker { c: Client, - worker_states: Arc, + worker_states: Arc, callbacks: Arc>, terminated: bool, } @@ -154,7 +154,7 @@ impl Worker { Worker { c, callbacks: Arc::new(callbacks), - worker_states: Arc::new(StatesRegistry::new(workers_count)), + worker_states: Arc::new(state::WorkerStatesRegistry::new(workers_count)), terminated: false, } } @@ -190,7 +190,7 @@ impl self.c.issue(&Ack::from(jid)).await, Err(ref fail) => self.c.issue(fail).await, @@ -199,7 +199,7 @@ impl r, Err(e) => { - wstate.last_job_result = Some(res); + wstate.save_last_result(res); return Err(e); } }; @@ -210,7 +210,7 @@ impl usize { let mut running = 0; for wstate in self.worker_states.iter() { - let may_be_jid = wstate.lock().unwrap().running_job.take(); + let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); if let Some(jid) = may_be_jid { running += 1; let f = Fail::new(jid, "unknown", "terminated"); diff --git a/src/worker/registries.rs b/src/worker/registries.rs deleted file mode 100644 index a10cebe2..00000000 --- a/src/worker/registries.rs +++ /dev/null @@ -1,77 +0,0 @@ -use super::runner::BoxedJobRunner; -use crate::proto::{Fail, JobId}; -use fnv::FnvHashMap; -use std::{ - ops::{Deref, DerefMut}, - sync::Mutex, -}; - -// --------------- CALLBACKS (Job Handlers) ---------------- - -pub(crate) struct CallbacksRegistry(FnvHashMap>); - -impl Deref for CallbacksRegistry { - type Target = FnvHashMap>; - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl DerefMut for CallbacksRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } -} - -impl Default for CallbacksRegistry { - fn default() -> CallbacksRegistry { - Self(FnvHashMap::default()) - } -} - -// -------------------- WORKER STATES --------------------- - -#[derive(Default)] -pub(crate) struct WorkerState { - pub(crate) last_job_result: Option>, - pub(crate) running_job: Option, -} - -pub(crate) struct StatesRegistry(Vec>); - -impl Deref for StatesRegistry { - type Target = Vec>; - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl DerefMut for StatesRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } -} - -impl StatesRegistry { - pub(crate) fn new(workers_count: usize) -> Self { - Self((0..workers_count).map(|_| Default::default()).collect()) - } - - pub(crate) fn register_running(&self, worker: usize, jid: JobId) { - self[worker].lock().expect("lock acquired").running_job = Some(jid); - } - - pub(crate) fn register_success(&self, worker: usize, jid: JobId) { - self[worker].lock().expect("lock acquired").last_job_result = Some(Ok(jid)); - } - - pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { - self[worker].lock().expect("lock acquired").last_job_result = Some(Err(f.clone())); - } - - pub(crate) fn reset(&self, worker: usize) { - let mut state = self[worker].lock().expect("lock acquired"); - state.last_job_result = None; - state.running_job = None; - } -} diff --git a/src/worker/state.rs b/src/worker/state.rs new file mode 100644 index 00000000..0fb9fe0b --- /dev/null +++ b/src/worker/state.rs @@ -0,0 +1,70 @@ +use crate::proto::{Fail, JobId}; +use std::{ + ops::{Deref, DerefMut}, + sync::Mutex, +}; + +#[derive(Default)] +pub(crate) struct WorkerState { + last_job_result: Option>, + running_job: Option, +} + +impl WorkerState { + pub(crate) fn take_last_result(&mut self) -> Option> { + self.last_job_result.take() + } + + pub(crate) fn take_cuurently_running(&mut self) -> Option { + self.running_job.take() + } + + pub(crate) fn save_last_result(&mut self, res: Result) { + self.last_job_result = Some(res) + } +} + +pub(crate) struct WorkerStatesRegistry(Vec>); + +impl Deref for WorkerStatesRegistry { + type Target = Vec>; + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl DerefMut for WorkerStatesRegistry { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } +} + +impl WorkerStatesRegistry { + pub(crate) fn new(workers_count: usize) -> Self { + Self((0..workers_count).map(|_| Default::default()).collect()) + } + + pub(crate) fn register_running(&self, worker: usize, jid: JobId) { + self[worker].lock().expect("lock acquired").running_job = Some(jid); + } + + pub(crate) fn register_success(&self, worker: usize, jid: JobId) { + self[worker] + .lock() + .expect("lock acquired") + .save_last_result(Ok(jid)); + } + + pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { + self[worker] + .lock() + .expect("lock acquired") + .save_last_result(Err(f.clone())); + } + + pub(crate) fn reset(&self, worker: usize) { + let mut state = self[worker].lock().expect("lock acquired"); + state.last_job_result = None; + state.running_job = None; + } +} From dcd6d9746cac2d93769091082abecd9bc1964d68 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Fri, 1 Mar 2024 08:31:32 +0500 Subject: [PATCH 023/175] Re-export rustls for convenience --- src/lib.rs | 5 ++++- tests/tls.rs | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 52d007b2..f8b1c4eb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -89,9 +89,12 @@ pub mod ent { } #[cfg(feature = "tls")] -#[cfg_attr(docsrs, doc(cfg(feature = "tls")))] mod tls; #[cfg(feature = "tls")] #[cfg_attr(docsrs, doc(cfg(feature = "tls")))] pub use tls::TlsStream; + +#[cfg(feature = "tls")] +#[cfg_attr(docsrs, doc(cfg(feature = "tls")))] +pub use tokio_rustls::rustls; diff --git a/tests/tls.rs b/tests/tls.rs index d7943018..e98763c6 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -1,13 +1,12 @@ #![cfg(feature = "tls")] -use faktory::*; +use faktory::rustls::{ClientConfig, SignatureScheme}; +use faktory::{Client, Job, TlsStream, WorkerBuilder}; use serde_json::Value; use std::{ env, sync::{self, Arc}, }; -use tokio_rustls::rustls::ClientConfig; -use tokio_rustls::rustls::SignatureScheme; #[tokio::test(flavor = "multi_thread")] async fn roundtrip_tls() { From 3c9ade4dfaf6972708bb073677629adc9f2fed1a Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Fri, 1 Mar 2024 10:18:13 +0500 Subject: [PATCH 024/175] re-export tokio main, clean up --- Cargo.lock | 7 +++---- Cargo.toml | 2 -- src/bin/loadtest.rs | 2 +- src/lib.rs | 1 + 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0c1dd7f2..72b7b905 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -403,7 +403,6 @@ dependencies = [ "derive_builder", "fnv", "hostname", - "libc", "num-bigint", "oid-registry", "pin-project", @@ -878,12 +877,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 256a7e26..1f621d7f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,6 @@ chrono = { version = "0.4", features = [ derive_builder = "0.12.0" fnv = "1.0.5" hostname = "0.3" -libc = "0.2" pin-project = { version = "1.1.4", optional = true } rand = "0.8" serde = "1.0" @@ -40,7 +39,6 @@ thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ "io-util", "net", - "rt", "time", "macros", "rt-multi-thread", diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index 095912ba..13a92f74 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -9,7 +9,7 @@ use std::time; const QUEUES: &[&str] = &["queue0", "queue1", "queue2", "queue3", "queue4"]; -#[tokio::main] +#[faktory::main] async fn main() { let matches = Command::new("My Super Program (Async)") .version("0.1") diff --git a/src/lib.rs b/src/lib.rs index f8b1c4eb..72a17d5f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -77,6 +77,7 @@ pub use crate::error::Error; pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect, WorkerId}; pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; pub use async_trait; +pub use tokio::main; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] From 55890c8aec2c6b3606506c819836f934f4d54312 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sat, 2 Mar 2024 13:56:19 +0500 Subject: [PATCH 025/175] Group re-exports in lib.rs --- src/lib.rs | 5 +++-- src/worker/runner.rs | 2 +- tests/tls.rs | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 72a17d5f..914b8d92 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -76,8 +76,6 @@ mod worker; pub use crate::error::Error; pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect, WorkerId}; pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; -pub use async_trait; -pub use tokio::main; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] @@ -96,6 +94,9 @@ mod tls; #[cfg_attr(docsrs, doc(cfg(feature = "tls")))] pub use tls::TlsStream; +// 3rd-party libs re-exports +pub use async_trait::async_trait; +pub use tokio::main; #[cfg(feature = "tls")] #[cfg_attr(docsrs, doc(cfg(feature = "tls")))] pub use tokio_rustls::rustls; diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 63e0c0b7..98488d90 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -14,7 +14,7 @@ use std::future::Future; /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{async_trait::async_trait, Job, JobRunner, WorkerBuilder}; +/// use faktory::{async_trait, Job, JobRunner, WorkerBuilder}; /// use std::io; /// /// struct MyHandler { diff --git a/tests/tls.rs b/tests/tls.rs index e98763c6..c299e3b2 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -71,7 +71,7 @@ mod fixtures { pub use tls::TestServerCertVerifier; mod handler { - use faktory::{async_trait::async_trait, Job, JobRunner}; + use faktory::{async_trait, Job, JobRunner}; use std::{ io, From 00a6d1dc02f421f8cdc640bccad65a36b46a1f39 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Sat, 2 Mar 2024 14:21:03 +0500 Subject: [PATCH 026/175] Fix copypasta in cmd.rs --- src/proto/single/cmd.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index 03e3cdc6..11453d35 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -252,7 +252,7 @@ impl FaktoryCommand for Push { } } -// ---------------------- QUEUE ------------------- +// ---------------------- PUSHB ------------------- pub struct PushBulk(Vec); @@ -272,7 +272,7 @@ impl FaktoryCommand for PushBulk { } } -// ---------------------------------------------- +// ---------------------- QUEUE ------------------- pub enum QueueAction { Pause, From 5382d5e72ec2ec7c4005b307b966efefa7c648f1 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Wed, 20 Mar 2024 13:08:48 +0500 Subject: [PATCH 027/175] Rm redundant method on Worker --- src/worker/builder.rs | 9 +-------- tests/real/community.rs | 2 +- tests/real/enterprise.rs | 6 +++--- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 7b95ef95..fb81ebdb 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -16,15 +16,8 @@ pub struct WorkerBuilder { callbacks: CallbacksRegistry, } -impl WorkerBuilder { - /// Create a builder for asynchronous version of `Worker`. - pub fn default_async() -> WorkerBuilder { - WorkerBuilder::default() - } -} - impl Default for WorkerBuilder { - /// Create a builder for asynchronous version of `ConWorkersumer`. + /// Create a builder for asynchronous version of `Worker`. /// /// See [`WorkerBuilder`](struct.WorkerBuilder.html) fn default() -> Self { diff --git a/tests/real/community.rs b/tests/real/community.rs index 6854efd0..dabf1ab4 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -61,7 +61,7 @@ async fn multi() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); - let mut c = WorkerBuilder::default_async(); + let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(local.into()); c.register(local, move |j| { diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index bffe0fb4..6342f6bd 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -209,7 +209,7 @@ async fn ent_unique_job_until_success() { // will sleep for a corresponding period of time, pretending // to work hard: let mut client_a = Client::connect(Some(&url1)).await.unwrap(); - let mut worker_a = WorkerBuilder::default_async(); + let mut worker_a = WorkerBuilder::default(); worker_a.register(job_type, |job| async move { let args = job.args().to_owned(); let mut args = args.iter(); @@ -289,7 +289,7 @@ async fn ent_unique_job_until_start() { let url1 = url.clone(); let handle = tokio::spawn(async move { let mut client_a = Client::connect(Some(&url1)).await.unwrap(); - let mut worker_a = WorkerBuilder::default_async(); + let mut worker_a = WorkerBuilder::default(); worker_a.register(job_type, |job| async move { let args = job.args().to_owned(); let mut args = args.iter(); @@ -379,7 +379,7 @@ async fn ent_unique_job_bypass_unique_lock() { // let's consume three times from the queue to verify that the first two jobs // have been enqueued for real, while the last one has not. - let mut c = WorkerBuilder::default_async(); + let mut c = WorkerBuilder::default(); c.register("order", print_job); let mut c = c.connect(Some(&url)).await.unwrap(); From dde77ceb7043092e6926de8eef0f464b4436244e Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Wed, 20 Mar 2024 13:30:32 +0500 Subject: [PATCH 028/175] Respecrt clippy on beta chan --- src/proto/client/mod.rs | 4 ++-- src/proto/single/resp.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index 4bd2afd2..fbdd1dc8 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -260,7 +260,7 @@ where hello.hostname = Some(self.opts.hostname.clone().unwrap()); hello.wid = Some(self.opts.wid.clone().unwrap()); hello.pid = Some(self.opts.pid.unwrap()); - hello.labels = self.opts.labels.clone(); + hello.labels.clone_from(&self.opts.labels); } if hi.salt.is_some() { @@ -362,7 +362,7 @@ where } /// Resume the given queues. - pub async fn queue_resume>(&mut self, queues: &[Q]) -> Result<(), Error> + pub async fn queue_resume(&mut self, queues: &[Q]) -> Result<(), Error> where Q: AsRef + Sync, { diff --git a/src/proto/single/resp.rs b/src/proto/single/resp.rs index 118f4547..18e5a9b1 100644 --- a/src/proto/single/resp.rs +++ b/src/proto/single/resp.rs @@ -257,7 +257,7 @@ mod test { use super::{read, RawResponse}; use crate::error::{self, Error}; - use serde_json::{self, Map, Value}; + use serde_json::{Map, Value}; use std::io::Cursor; use tokio::io::AsyncBufReadExt; From faeb4369702f3ab6c9ed8fd601ff4f61c1977c8a Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Wed, 20 Mar 2024 13:40:39 +0500 Subject: [PATCH 029/175] Use try_seconds instead of seconds on Duration struct --- src/proto/single/ent/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/proto/single/ent/mod.rs b/src/proto/single/ent/mod.rs index e6f4f63e..7961f8b0 100644 --- a/src/proto/single/ent/mod.rs +++ b/src/proto/single/ent/mod.rs @@ -100,7 +100,7 @@ mod test { #[test] fn test_expiration_feature_for_enterprise_faktory() { - let five_min = chrono::Duration::seconds(299); + let five_min = chrono::Duration::try_seconds(299).unwrap(); let exp_at = Utc::now() + five_min; let job0 = half_stuff().expires_at(exp_at).build(); let stored = job0.custom.get("expires_at").unwrap(); @@ -126,8 +126,8 @@ mod test { #[test] fn test_same_purpose_setters_applied_simultaneously() { - let expires_at0 = Utc::now() + chrono::Duration::seconds(300); - let expires_at1 = Utc::now() + chrono::Duration::seconds(300); + let expires_at0 = Utc::now() + chrono::Duration::try_seconds(300).unwrap(); + let expires_at1 = Utc::now() + chrono::Duration::try_seconds(300).unwrap(); let job = half_stuff() .unique_for(59) .add_to_custom_data("unique_for", 599) From 9ba6e855f4d3f75712345d6bbd5f21ebf42aa431 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Wed, 20 Mar 2024 13:44:35 +0500 Subject: [PATCH 030/175] Use try_seconds instead of seconds on Duration struct in tests --- tests/real/enterprise.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index 6342f6bd..26381d73 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -51,7 +51,7 @@ async fn ent_expiring_job() { // prepare an expiring job: let job_ttl_secs: u64 = 3; - let ttl = chrono::Duration::seconds(job_ttl_secs as i64); + let ttl = chrono::Duration::try_seconds(job_ttl_secs as i64).unwrap(); let job1 = JobBuilder::new("AnExpiringJob") .args(vec!["ISBN-13:9781718501850"]) .queue(local) From fe65c67a00ef61e4513f0724d52be4a9f5efe5c0 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Wed, 20 Mar 2024 14:26:04 +0500 Subject: [PATCH 031/175] Pin chrono at 0.4.32 to make minimal-versions pass --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 1f621d7f..f78b78e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,6 +56,7 @@ x509-parser = "0.15.1" rustls = "0.22.1" num-bigint = "0.4.2" oid-registry = "0.6.1" +chrono = "0.4.32" [[bin]] name = "loadtest" From ab59c9762af6ff5951d936e4b642c5195c567cfa Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Wed, 20 Mar 2024 14:30:03 +0500 Subject: [PATCH 032/175] Pin chrono at 0.4.32 to make minimal-versions pass --- Cargo.lock | 172 +++++++++++++++++++++++++++-------------------------- 1 file changed, 87 insertions(+), 85 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 72b7b905..b5879a7b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,9 +34,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -138,18 +138,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", ] [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", ] [[package]] @@ -184,9 +184,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.1" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c764d619ca78fccbf3069b37bd7af92577f044bb15236036662d79b6559f25b7" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "bytes" @@ -196,9 +196,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.86" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730" +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" [[package]] name = "cfg-if" @@ -208,31 +208,33 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", + "js-sys", "num-traits", "serde", - "windows-targets 0.52.0", + "wasm-bindgen", + "windows-targets 0.52.4", ] [[package]] name = "clap" -version = "4.5.1" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", @@ -390,7 +392,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", ] [[package]] @@ -470,9 +472,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hostname" @@ -532,9 +534,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -553,9 +555,9 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "match_cfg" @@ -586,9 +588,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", @@ -682,22 +684,22 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", ] [[package]] @@ -720,9 +722,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -812,9 +814,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" +checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" [[package]] name = "rustls-webpki" @@ -850,7 +852,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", ] [[package]] @@ -922,9 +924,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.50" +version = "2.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" +checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ "proc-macro2", "quote", @@ -945,22 +947,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", ] [[package]] @@ -1034,7 +1036,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", ] [[package]] @@ -1050,9 +1052,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -1061,9 +1063,9 @@ dependencies = [ [[package]] name = "tokio-test" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719" +checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" dependencies = [ "async-stream", "bytes", @@ -1142,9 +1144,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1152,24 +1154,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1177,22 +1179,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "winapi" @@ -1222,7 +1224,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -1240,7 +1242,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -1260,17 +1262,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -1281,9 +1283,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -1293,9 +1295,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -1305,9 +1307,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -1317,9 +1319,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -1329,9 +1331,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -1341,9 +1343,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -1353,9 +1355,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "x509-parser" From 8b979a4f784a7a7d82d47f91de6aa9d65b9c3348 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 01:02:36 +0500 Subject: [PATCH 033/175] Fix opts in Worker::connect method --- src/worker/builder.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index fb81ebdb..eba846b5 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -107,11 +107,12 @@ impl WorkerBuilder { /// /// See [`connect`](WorkerBuilder::connect). pub async fn connect( - self, + mut self, url: Option<&str>, ) -> Result, E>, Error> { let url = utils::parse_provided_or_from_env(url)?; let stream = TokioStream::connect(utils::host_from_url(&url)).await?; + self.opts.is_worker = true; let buffered = BufStream::new(stream); let client = Client::new(buffered, self.opts).await?; Ok(Worker::new(client, self.workers_count, self.callbacks).await) From 5077f2a83721b4de257abdfbf493d06f088cc021 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 2 Apr 2024 21:11:02 +0500 Subject: [PATCH 034/175] Use 'dep:' for feature deps --- Cargo.toml | 5 ++--- Makefile | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f78b78e7..56ea91ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ exclude = [".github", "docker", ".gitignore", "Makefile"] [features] default = [] -tls = ["tokio-rustls", "pin-project"] +tls = ["dep:tokio-rustls", "tokio/net", "tokio/io-util", "dep:pin-project"] binaries = ["clap"] ent = [] @@ -37,8 +37,7 @@ serde_json = "1.0" sha2 = "0.10.0" thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ - "io-util", - "net", + "rt", "time", "macros", "rt-multi-thread", diff --git a/Makefile b/Makefile index 6e23d9c0..35cac22a 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ +FAKTORY_IP=127.0.0.1 FAKTORY_HOST=localhost FAKTORY_PORT=7419 FAKTORY_PORT_SECURE=17419 @@ -17,8 +18,8 @@ doc: faktory: docker run --rm -d \ -v faktory-data:/var/lib/faktory \ - -p ${FAKTORY_HOST}:${FAKTORY_PORT}:7419 \ - -p ${FAKTORY_HOST}:${FAKTORY_PORT_UI}:7420 \ + -p ${FAKTORY_IP}:${FAKTORY_PORT}:7419 \ + -p ${FAKTORY_IP}:${FAKTORY_PORT_UI}:7420 \ --name faktory \ contribsys/faktory:latest \ /faktory -b :7419 -w :7420 From 5b041c92d38176350de0b614cb679502989de279 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 3 Apr 2024 01:09:49 +0500 Subject: [PATCH 035/175] Use tokio-native-tls for tls feature --- Cargo.lock | 201 +++++++++++++++++++++++++++++++++++++++++++++++++-- Cargo.toml | 11 ++- src/error.rs | 6 ++ src/lib.rs | 3 - src/tls.rs | 77 +++++++++----------- tests/tls.rs | 103 +++----------------------- 6 files changed, 252 insertions(+), 149 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b5879a7b..9f5a807d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -173,6 +173,18 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + [[package]] name = "block-buffer" version = "0.10.4" @@ -254,6 +266,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.6" @@ -395,6 +417,16 @@ dependencies = [ "syn 2.0.53", ] +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "faktory" version = "0.12.5" @@ -416,18 +448,39 @@ dependencies = [ "sha2", "thiserror", "tokio", - "tokio-rustls", + "tokio-native-tls", "tokio-test", "url", "x509-parser", ] +[[package]] +name = "fastrand" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" + [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -553,6 +606,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + [[package]] name = "log" version = "0.4.21" @@ -597,6 +656,24 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "nom" version = "7.1.3" @@ -676,6 +753,50 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -708,6 +829,12 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + [[package]] name = "powerfmt" version = "0.2.0" @@ -798,6 +925,19 @@ dependencies = [ "nom", ] +[[package]] +name = "rustix" +version = "0.38.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + [[package]] name = "rustls" version = "0.22.2" @@ -835,6 +975,38 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "security-framework" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "serde" version = "1.0.197" @@ -945,6 +1117,18 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "thiserror" version = "1.0.58" @@ -1040,13 +1224,12 @@ dependencies = [ ] [[package]] -name = "tokio-rustls" -version = "0.25.0" +name = "tokio-native-tls" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ - "rustls", - "rustls-pki-types", + "native-tls", "tokio", ] @@ -1130,6 +1313,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.4" diff --git a/Cargo.toml b/Cargo.toml index 56ea91ba..031103fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ exclude = [".github", "docker", ".gitignore", "Makefile"] [features] default = [] -tls = ["dep:tokio-rustls", "tokio/net", "tokio/io-util", "dep:pin-project"] +tls = ["dep:tokio-native-tls", "dep:pin-project"] binaries = ["clap"] ent = [] @@ -37,12 +37,15 @@ serde_json = "1.0" sha2 = "0.10.0" thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ - "rt", - "time", + "io-util", "macros", + "net", + "rt", "rt-multi-thread", + "time", + ] } -tokio-rustls = { version = "0.25.0", optional = true } +tokio-native-tls = { version = "0.3.1", optional = true } url = "2" [dev-dependencies] diff --git a/src/error.rs b/src/error.rs index 417ec6eb..bc5e0a7e 100644 --- a/src/error.rs +++ b/src/error.rs @@ -41,6 +41,12 @@ pub enum Error { /// These generally indicate a mismatch between what the client expects and what the server provided. #[error("serialization")] Serialization(#[source] serde_json::Error), + + /// Indicates an error in the underlying TLS stream. + #[cfg(feature = "tls")] + #[cfg_attr(docsrs, doc(cfg(feature = "tls")))] + #[error("underlying tls stream")] + TlsStream(#[source] tokio_native_tls::native_tls::Error), } /// Errors specific to connection logic. diff --git a/src/lib.rs b/src/lib.rs index 914b8d92..79538edb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -97,6 +97,3 @@ pub use tls::TlsStream; // 3rd-party libs re-exports pub use async_trait::async_trait; pub use tokio::main; -#[cfg(feature = "tls")] -#[cfg_attr(docsrs, doc(cfg(feature = "tls")))] -pub use tokio_rustls::rustls; diff --git a/src/tls.rs b/src/tls.rs index b6126df7..2a80c690 100644 --- a/src/tls.rs +++ b/src/tls.rs @@ -5,14 +5,12 @@ use crate::{proto::utils, Error, Reconnect}; use std::fmt::Debug; use std::io; use std::ops::{Deref, DerefMut}; -use std::sync::Arc; use tokio::io::{AsyncRead, AsyncWrite}; use tokio::net::TcpStream as TokioTcpStream; -use tokio_rustls::client::TlsStream as UnderlyingTlsStream; -use tokio_rustls::rustls::{ClientConfig, RootCertStore}; -use tokio_rustls::TlsConnector; +use tokio_native_tls::TlsStream as NativeTlsStream; +use tokio_native_tls::{native_tls::TlsConnector, TlsConnector as AsyncTlsConnector}; -/// A reconnectable asynchronous stream encrypted with TLS. +/// A reconnectable stream encrypted with TLS. /// /// This can be used as an argument to [`WorkerBuilder::connect_with`] and [`Client::connect_with`] to /// connect to a TLS-secured Faktory server. @@ -30,10 +28,10 @@ use tokio_rustls::TlsConnector; /// #[pin_project::pin_project] pub struct TlsStream { - connector: TlsConnector, - hostname: &'static str, + connector: AsyncTlsConnector, + hostname: String, #[pin] - stream: UnderlyingTlsStream, + stream: NativeTlsStream, } impl TlsStream { @@ -50,28 +48,15 @@ impl TlsStream { /// ``` /// /// If `url` is given, but does not specify a port, it defaults to 7419. - /// - /// Internally creates a `ClientConfig` with an empty root certificates store and no client - /// authentication. Use [`with_client_config`](TlsStream::with_client_config) - /// or [`with_connector`](TlsStream::with_connector) for customized - /// `ClientConfig` and `TlsConnector` accordingly. pub async fn connect(url: Option<&str>) -> Result { - let conf = ClientConfig::builder() - .with_root_certificates(RootCertStore::empty()) - .with_no_client_auth(); - let con = TlsConnector::from(Arc::new(conf)); - TlsStream::with_connector(con, url).await + TlsStream::with_connector( + TlsConnector::builder().build().map_err(Error::TlsStream)?, + url, + ) + .await } - /// Create a new asynchronous TLS connection over TCP using a non-default TLS configuration. - /// - /// See `connect` for details about the `url` parameter. - pub async fn with_client_config(conf: ClientConfig, url: Option<&str>) -> Result { - let con = TlsConnector::from(Arc::new(conf)); - TlsStream::with_connector(con, url).await - } - - /// Create a new asynchronous TLS connection over TCP using a connector with a non-default TLS configuration. + /// Create a new TLS connection over TCP using a non-default TLS configuration. /// /// See `connect` for details about the `url` parameter. pub async fn with_connector(connector: TlsConnector, url: Option<&str>) -> Result { @@ -81,8 +66,7 @@ impl TlsStream { }?; let hostname = utils::host_from_url(&url); let tcp_stream = TokioTcpStream::connect(&hostname).await?; - let hostname: &'static str = url.host_str().unwrap().to_string().leak(); - Ok(TlsStream::new(tcp_stream, connector, hostname).await?) + Ok(TlsStream::new(tcp_stream, connector, &hostname).await?) } } @@ -90,33 +74,34 @@ impl TlsStream where S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static, { - /// Create a new asynchronous TLS connection on an existing stream. + /// Create a new TLS connection on an existing stream. /// /// Internally creates a `ClientConfig` with an empty root certificates store and no client /// authentication. Use [`new`](TlsStream::new) for a customized `TlsConnector`. - pub async fn default(stream: S, hostname: &'static str) -> io::Result { - let conf = ClientConfig::builder() - .with_root_certificates(RootCertStore::empty()) - .with_no_client_auth(); - - Self::new(stream, TlsConnector::from(Arc::new(conf)), hostname).await + /// Create a new TLS connection on an existing stream. + pub async fn default(stream: S, hostname: &str) -> io::Result { + let connector = TlsConnector::builder() + .build() + .map_err(Error::TlsStream) + .unwrap(); + Self::new(stream, connector, hostname).await } - /// Create a new asynchronous TLS connection on an existing stream with a non-default TLS configuration. + /// Create a new TLS connection on an existing stream with a non-default TLS configuration. pub async fn new( stream: S, - connector: TlsConnector, - hostname: &'static str, + connector: impl Into, + hostname: &str, ) -> io::Result { - // let hostname: &'static str = hostname.to_string().leak(); let domain = hostname.try_into().expect("a valid DNS name or IP address"); + let connector = connector.into(); let tls_stream = connector .connect(domain, stream) .await .map_err(|e| io::Error::new(io::ErrorKind::ConnectionAborted, e))?; Ok(TlsStream { connector, - hostname, + hostname: hostname.into(), stream: tls_stream, }) } @@ -128,13 +113,19 @@ where S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static + Sync, { async fn reconnect(&mut self) -> io::Result { - let stream = self.stream.get_mut().0.reconnect().await?; + let stream = self + .stream + .get_mut() + .get_mut() + .get_mut() + .reconnect() + .await?; Self::new(stream, self.connector.clone(), &self.hostname).await } } impl Deref for TlsStream { - type Target = UnderlyingTlsStream; + type Target = NativeTlsStream; fn deref(&self) -> &Self::Target { &self.stream } diff --git a/tests/tls.rs b/tests/tls.rs index c299e3b2..e9dda2d7 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -1,15 +1,13 @@ #![cfg(feature = "tls")] -use faktory::rustls::{ClientConfig, SignatureScheme}; use faktory::{Client, Job, TlsStream, WorkerBuilder}; use serde_json::Value; -use std::{ - env, - sync::{self, Arc}, -}; +use std::{env, sync}; #[tokio::test(flavor = "multi_thread")] async fn roundtrip_tls() { + use tokio_native_tls::native_tls::TlsConnector; + // We are utilizing the fact that the "FAKTORY_URL_SECURE" environment variable is set // as an indicator that the integration test can and should be performed. // @@ -32,25 +30,13 @@ async fn roundtrip_tls() { c.register_runner(local, fixtures::JobHandler::new(tx)); let tls = || async { - let verifier = fixtures::TestServerCertVerifier::new( - SignatureScheme::RSA_PSS_SHA512, - env::current_dir() - .unwrap() - .join("docker") - .join("certs") - .join("faktory.local.crt"), - ); - let client_config = ClientConfig::builder() - .dangerous() - .with_custom_certificate_verifier(Arc::new(verifier)) - .with_no_client_auth(); - - TlsStream::with_client_config( - client_config, - Some(&env::var("FAKTORY_URL_SECURE").unwrap()), - ) - .await - .unwrap() + let connector = TlsConnector::builder() + .danger_accept_invalid_certs(true) + .build() + .unwrap(); + TlsStream::with_connector(connector, Some(&env::var("FAKTORY_URL_SECURE").unwrap())) + .await + .unwrap() }; let mut c = c.connect_with(tls().await, None).await.unwrap(); @@ -68,11 +54,9 @@ async fn roundtrip_tls() { mod fixtures { pub use handler::JobHandler; - pub use tls::TestServerCertVerifier; mod handler { use faktory::{async_trait, Job, JobRunner}; - use std::{ io, sync::{mpsc::Sender, Arc, Mutex}, @@ -109,71 +93,4 @@ mod fixtures { } } } - - mod tls { - #![allow(unused_variables)] - - use std::fs; - use std::path::PathBuf; - - use tokio_rustls::rustls::client::danger::{ - HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier, - }; - use tokio_rustls::rustls::pki_types::{CertificateDer, ServerName, UnixTime}; - use tokio_rustls::rustls::DigitallySignedStruct; - use tokio_rustls::rustls::Error as RustlsError; - use tokio_rustls::rustls::SignatureScheme; - use x509_parser::pem::parse_x509_pem; - - #[derive(Debug)] - pub struct TestServerCertVerifier<'a> { - scheme: SignatureScheme, - cert_der: CertificateDer<'a>, - } - - impl TestServerCertVerifier<'_> { - pub fn new(scheme: SignatureScheme, cert_path: PathBuf) -> Self { - let cert = fs::read(&cert_path).unwrap(); - let (_, pem) = parse_x509_pem(&cert).unwrap(); - let cert_der = CertificateDer::try_from(pem.contents).unwrap(); - Self { scheme, cert_der } - } - } - - impl ServerCertVerifier for TestServerCertVerifier<'_> { - fn verify_server_cert( - &self, - end_entity: &CertificateDer<'_>, - intermediates: &[CertificateDer<'_>], - server_name: &ServerName<'_>, - ocsp_response: &[u8], - now: UnixTime, - ) -> Result { - assert_eq!(&self.cert_der, end_entity); - Ok(ServerCertVerified::assertion()) - } - - fn verify_tls12_signature( - &self, - message: &[u8], - cert: &CertificateDer<'_>, - dss: &DigitallySignedStruct, - ) -> Result { - Ok(HandshakeSignatureValid::assertion()) - } - - fn verify_tls13_signature( - &self, - message: &[u8], - cert: &CertificateDer<'_>, - dss: &DigitallySignedStruct, - ) -> Result { - Ok(HandshakeSignatureValid::assertion()) - } - - fn supported_verify_schemes(&self) -> Vec { - vec![self.scheme] - } - } - } } From 4efd5b65ebd531e737095b16132fe31b6f24910b Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 3 Apr 2024 01:29:17 +0500 Subject: [PATCH 036/175] Rm re-exports. Use tokio/macros for binaries feat only --- Cargo.toml | 4 +--- src/bin/loadtest.rs | 2 +- src/lib.rs | 4 ---- tests/tls.rs | 3 ++- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 031103fd..c70eea3b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ exclude = [".github", "docker", ".gitignore", "Makefile"] [features] default = [] tls = ["dep:tokio-native-tls", "dep:pin-project"] -binaries = ["clap"] +binaries = ["dep:clap", "tokio/macros"] ent = [] [dependencies] @@ -38,12 +38,10 @@ sha2 = "0.10.0" thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ "io-util", - "macros", "net", "rt", "rt-multi-thread", "time", - ] } tokio-native-tls = { version = "0.3.1", optional = true } url = "2" diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index 13a92f74..095912ba 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -9,7 +9,7 @@ use std::time; const QUEUES: &[&str] = &["queue0", "queue1", "queue2", "queue3", "queue4"]; -#[faktory::main] +#[tokio::main] async fn main() { let matches = Command::new("My Super Program (Async)") .version("0.1") diff --git a/src/lib.rs b/src/lib.rs index 79538edb..8f4617e0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -93,7 +93,3 @@ mod tls; #[cfg(feature = "tls")] #[cfg_attr(docsrs, doc(cfg(feature = "tls")))] pub use tls::TlsStream; - -// 3rd-party libs re-exports -pub use async_trait::async_trait; -pub use tokio::main; diff --git a/tests/tls.rs b/tests/tls.rs index e9dda2d7..d98294f4 100644 --- a/tests/tls.rs +++ b/tests/tls.rs @@ -56,7 +56,8 @@ mod fixtures { pub use handler::JobHandler; mod handler { - use faktory::{async_trait, Job, JobRunner}; + use async_trait::async_trait; + use faktory::{Job, JobRunner}; use std::{ io, sync::{mpsc::Sender, Arc, Mutex}, From d657f69e7a793538fab2745f75179139a500690f Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 3 Apr 2024 10:26:34 +0500 Subject: [PATCH 037/175] Restore pin of min version for openssl --- Cargo.lock | 1 + Cargo.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 9f5a807d..362a7651 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -439,6 +439,7 @@ dependencies = [ "hostname", "num-bigint", "oid-registry", + "openssl", "pin-project", "rand", "rustls", diff --git a/Cargo.toml b/Cargo.toml index c70eea3b..e527a027 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,6 +53,7 @@ x509-parser = "0.15.1" # to make -Zminimal-versions work [target.'cfg(any())'.dependencies] +openssl = { version = "0.10.60", optional = true } rustls = "0.22.1" num-bigint = "0.4.2" oid-registry = "0.6.1" From 53969f78cbf4648ce023298cfbd36d3d3add25d0 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 3 Apr 2024 21:19:15 +0500 Subject: [PATCH 038/175] Use JoinSet in loadtest binary --- src/bin/loadtest.rs | 99 +++++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 48 deletions(-) diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index 095912ba..5dbc5054 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -6,6 +6,7 @@ use std::io; use std::process; use std::sync::{self, atomic}; use std::time; +use tokio::task; const QUEUES: &[&str] = &["queue0", "queue1", "queue2", "queue3", "queue4"]; @@ -49,60 +50,62 @@ async fn main() { let popped = sync::Arc::new(atomic::AtomicUsize::new(0)); let start = time::Instant::now(); - let threads: Vec>> = (0..threads) - .map(|_| { - let pushed = sync::Arc::clone(&pushed); - let popped = sync::Arc::clone(&popped); - tokio::spawn(async move { - // make producer and consumer - let mut p = Client::connect(None).await.unwrap(); - let mut c = WorkerBuilder::default(); - c.register("SomeJob", |_| { - Box::pin(async move { - let mut rng = rand::thread_rng(); - if rng.gen_bool(0.01) { - Err(io::Error::new(io::ErrorKind::Other, "worker closed")) - } else { - Ok(()) - } - }) - }); - let mut c = c.connect(None).await.unwrap(); - let mut rng = rand::rngs::OsRng; - let mut random_queues = Vec::from(QUEUES); - random_queues.shuffle(&mut rng); - for idx in 0..jobs { - if idx % 2 == 0 { - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { - return Ok(idx); - } + let mut set = task::JoinSet::new(); + for _ in 0..threads { + let pushed = sync::Arc::clone(&pushed); + let popped = sync::Arc::clone(&popped); + set.spawn(async move { + // make producer and consumer + let mut p = Client::connect(None).await.unwrap(); + let mut c = WorkerBuilder::default(); + c.register("SomeJob", |_| { + Box::pin(async move { + let mut rng = rand::thread_rng(); + if rng.gen_bool(0.01) { + Err(io::Error::new(io::ErrorKind::Other, "worker closed")) } else { - // pop - c.run_one(0, &random_queues[..]).await?; - if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { - return Ok(idx); - } + Ok(()) + } + }) + }); + let mut c = c.connect(None).await.unwrap(); + + let mut rng = rand::rngs::OsRng; + let mut random_queues = Vec::from(QUEUES); + random_queues.shuffle(&mut rng); + for idx in 0..jobs { + if idx % 2 == 0 { + // push + let mut job = Job::new( + "SomeJob", + vec![serde_json::Value::from(1), "string".into(), 3.into()], + ); + job.priority = Some(rng.gen_range(1..10)); + job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); + p.enqueue(job).await?; + if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { + return Ok::(idx); + } + } else { + // pop + c.run_one(0, &random_queues[..]).await?; + if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { + return Ok(idx); } } - Ok(jobs) - }) - }) - .collect(); + } + Ok(jobs) + }); + } - let mut _ops_count = Vec::with_capacity(threads.len()); - for jh in threads { - _ops_count.push(jh.await.unwrap()) + let mut _ops_count = Vec::with_capacity(threads); + while let Some(res) = set.join_next().await { + _ops_count.push(res.unwrap()) } + let stop = start.elapsed(); + let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); let stop_secs = stop_secs as f64 / 1_000_000_000.0; println!( @@ -112,5 +115,5 @@ async fn main() { stop_secs, jobs as f64 / stop_secs, ); - // println!("{:?}", _ops_count); + println!("{:?}", _ops_count); } From ea5fa8bb925175a35da0b4608865acf01a6836b9 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 3 Apr 2024 21:55:00 +0500 Subject: [PATCH 039/175] Rm left-over from proto/mod --- src/proto/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/proto/mod.rs b/src/proto/mod.rs index ea23861b..3d7bf315 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -49,7 +49,6 @@ where S: AsyncRead + AsyncWrite + Reconnect + Send + Sync, { async fn reconnect(&mut self) -> io::Result { - // let addr = &self.get_ref().peer_addr().expect("socket address"); let stream = self.get_mut().reconnect().await?; Ok(Self::new(stream)) } From d3389caf6e8fa07d4784821e211790a7f381586c Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 3 Apr 2024 22:44:55 +0500 Subject: [PATCH 040/175] Keep 'CommitBatch' public in crate --- src/proto/batch/cmd.rs | 7 ++++--- src/proto/batch/mod.rs | 4 +++- src/proto/client/ent.rs | 4 ++-- src/proto/mod.rs | 3 +-- src/worker/runner.rs | 3 ++- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/proto/batch/cmd.rs b/src/proto/batch/cmd.rs index bd238736..cbf61c81 100644 --- a/src/proto/batch/cmd.rs +++ b/src/proto/batch/cmd.rs @@ -23,8 +23,9 @@ macro_rules! batch_cmd { #[async_trait::async_trait] impl FaktoryCommand for $structure { async fn issue(&self, w: &mut W) -> Result<(), Error> { - let c = format!("BATCH {} ", $cmd); - w.write_all(c.as_bytes()).await?; + w.write_all(b"BATCH ").await?; + w.write_all($cmd.as_bytes()).await?; + w.write_all(b" ").await?; w.write_all(self.0.as_bytes()).await?; Ok(w.write_all(b"\r\n").await?) } @@ -32,7 +33,7 @@ macro_rules! batch_cmd { }; } -pub struct CommitBatch(BatchId); +pub(crate) struct CommitBatch(BatchId); batch_cmd!(CommitBatch, "COMMIT"); pub struct GetBatchStatus(BatchId); diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index da5e656e..f274f19a 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -8,10 +8,12 @@ mod cmd; mod handle; mod status; -pub use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; +pub use cmd::{GetBatchStatus, OpenBatch}; pub use handle::BatchHandle; pub use status::{BatchStatus, CallbackState}; +pub(crate) use cmd::CommitBatch; + /// Batch of jobs. /// /// Faktory guarantees a callback (`success` and/or `failure`) will be triggered after the execution diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs index e0876d09..b1a43378 100644 --- a/src/proto/client/ent.rs +++ b/src/proto/client/ent.rs @@ -1,6 +1,6 @@ +use super::super::batch::CommitBatch; use super::super::{ - single, BatchStatus, CommitBatch, GetBatchStatus, JobId, OpenBatch, Progress, ProgressUpdate, - Track, + single, BatchStatus, GetBatchStatus, JobId, OpenBatch, Progress, ProgressUpdate, Track, }; use super::{Client, ReadToken}; use crate::ent::{Batch, BatchHandle, BatchId}; diff --git a/src/proto/mod.rs b/src/proto/mod.rs index 3d7bf315..b36a61af 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -24,8 +24,7 @@ pub use self::single::BatchId; mod batch; #[cfg(feature = "ent")] pub use batch::{ - Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, CommitBatch, GetBatchStatus, - OpenBatch, + Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, GetBatchStatus, OpenBatch, }; /// A stream that can be re-established after failing. diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 98488d90..0bae806a 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -14,7 +14,8 @@ use std::future::Future; /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{async_trait, Job, JobRunner, WorkerBuilder}; +/// use async_trait::async_trait; +/// use faktory::{Job, JobRunner, WorkerBuilder}; /// use std::io; /// /// struct MyHandler { From b3a272d915e6a2eb26ef062dec92265052926884 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 3 Apr 2024 22:47:26 +0500 Subject: [PATCH 041/175] Keep 'GetBatchStatus' public in crate --- src/proto/batch/cmd.rs | 2 +- src/proto/batch/mod.rs | 4 ++-- src/proto/client/ent.rs | 6 ++---- src/proto/mod.rs | 4 +--- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/proto/batch/cmd.rs b/src/proto/batch/cmd.rs index cbf61c81..f6bd7dbf 100644 --- a/src/proto/batch/cmd.rs +++ b/src/proto/batch/cmd.rs @@ -36,7 +36,7 @@ macro_rules! batch_cmd { pub(crate) struct CommitBatch(BatchId); batch_cmd!(CommitBatch, "COMMIT"); -pub struct GetBatchStatus(BatchId); +pub(crate) struct GetBatchStatus(BatchId); batch_cmd!(GetBatchStatus, "STATUS"); pub struct OpenBatch(BatchId); diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index f274f19a..77cc1dd6 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -8,11 +8,11 @@ mod cmd; mod handle; mod status; -pub use cmd::{GetBatchStatus, OpenBatch}; +pub use cmd::OpenBatch; pub use handle::BatchHandle; pub use status::{BatchStatus, CallbackState}; -pub(crate) use cmd::CommitBatch; +pub(crate) use cmd::{CommitBatch, GetBatchStatus}; /// Batch of jobs. /// diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs index b1a43378..c5d88be2 100644 --- a/src/proto/client/ent.rs +++ b/src/proto/client/ent.rs @@ -1,7 +1,5 @@ -use super::super::batch::CommitBatch; -use super::super::{ - single, BatchStatus, GetBatchStatus, JobId, OpenBatch, Progress, ProgressUpdate, Track, -}; +use super::super::batch::{CommitBatch, GetBatchStatus}; +use super::super::{single, BatchStatus, JobId, OpenBatch, Progress, ProgressUpdate, Track}; use super::{Client, ReadToken}; use crate::ent::{Batch, BatchHandle, BatchId}; use crate::error::Error; diff --git a/src/proto/mod.rs b/src/proto/mod.rs index b36a61af..89817af2 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -23,9 +23,7 @@ pub use self::single::BatchId; #[cfg(feature = "ent")] mod batch; #[cfg(feature = "ent")] -pub use batch::{ - Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, GetBatchStatus, OpenBatch, -}; +pub use batch::{Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, OpenBatch}; /// A stream that can be re-established after failing. #[async_trait::async_trait] From c70ff2c30aeed40fbc5e80757d6a9133339d9a84 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 3 Apr 2024 22:49:11 +0500 Subject: [PATCH 042/175] Keep 'OpenBatch' public in crate --- src/proto/batch/cmd.rs | 2 +- src/proto/batch/mod.rs | 3 +-- src/proto/client/ent.rs | 4 ++-- src/proto/mod.rs | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/proto/batch/cmd.rs b/src/proto/batch/cmd.rs index f6bd7dbf..27329a36 100644 --- a/src/proto/batch/cmd.rs +++ b/src/proto/batch/cmd.rs @@ -39,5 +39,5 @@ batch_cmd!(CommitBatch, "COMMIT"); pub(crate) struct GetBatchStatus(BatchId); batch_cmd!(GetBatchStatus, "STATUS"); -pub struct OpenBatch(BatchId); +pub(crate) struct OpenBatch(BatchId); batch_cmd!(OpenBatch, "OPEN"); diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index 77cc1dd6..52d7d617 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -8,11 +8,10 @@ mod cmd; mod handle; mod status; -pub use cmd::OpenBatch; pub use handle::BatchHandle; pub use status::{BatchStatus, CallbackState}; -pub(crate) use cmd::{CommitBatch, GetBatchStatus}; +pub(crate) use cmd::{CommitBatch, GetBatchStatus, OpenBatch}; /// Batch of jobs. /// diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs index c5d88be2..c3c83daf 100644 --- a/src/proto/client/ent.rs +++ b/src/proto/client/ent.rs @@ -1,5 +1,5 @@ -use super::super::batch::{CommitBatch, GetBatchStatus}; -use super::super::{single, BatchStatus, JobId, OpenBatch, Progress, ProgressUpdate, Track}; +use super::super::batch::{CommitBatch, GetBatchStatus, OpenBatch}; +use super::super::{single, BatchStatus, JobId, Progress, ProgressUpdate, Track}; use super::{Client, ReadToken}; use crate::ent::{Batch, BatchHandle, BatchId}; use crate::error::Error; diff --git a/src/proto/mod.rs b/src/proto/mod.rs index 89817af2..a6f968c7 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -23,7 +23,7 @@ pub use self::single::BatchId; #[cfg(feature = "ent")] mod batch; #[cfg(feature = "ent")] -pub use batch::{Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState, OpenBatch}; +pub use batch::{Batch, BatchBuilder, BatchHandle, BatchStatus, CallbackState}; /// A stream that can be re-established after failing. #[async_trait::async_trait] From a56137734cfd49ac8cbac10ee0d260c4aaaac8fc Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 4 Apr 2024 21:41:45 +0500 Subject: [PATCH 043/175] Clean up in Cleint::init --- src/proto/client/mod.rs | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index fbdd1dc8..c468e344 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -228,6 +228,7 @@ where let hi = single::read_hi(&mut self.stream).await?; check_protocols_match(hi.version)?; + // fill in any missing options, and remember them for re-connect let mut hello = single::Hello::default(); // prepare password hash, if one expected by 'Faktory' @@ -239,12 +240,8 @@ where } } - // fill in any missing options, and remember them for re-connect - let mut hello = single::Hello::default(); - if self.opts.is_worker { // fill in any missing options, and remember them for re-connect - let hostname = self .opts .hostname @@ -263,14 +260,6 @@ where hello.labels.clone_from(&self.opts.labels); } - if hi.salt.is_some() { - if let Some(ref pwd) = self.opts.password { - hello.set_password(&hi, pwd); - } else { - return Err(error::Connect::AuthenticationNeeded.into()); - } - } - single::write_command_and_await_ok(&mut self.stream, &hello).await?; Ok(()) } From e2ccfcf321aeadf789f3009db756e84fcbeee94c Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 4 Apr 2024 21:56:04 +0500 Subject: [PATCH 044/175] Split private and public methods for Client into blocks --- src/proto/client/mod.rs | 55 ++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index c468e344..3f4a5d31 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -288,6 +288,36 @@ where .await } + pub(crate) async fn heartbeat(&mut self) -> Result { + single::write_command( + &mut self.stream, + &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), + ) + .await?; + + match single::read_json::<_, serde_json::Value>(&mut self.stream).await? { + None => Ok(HeartbeatStatus::Ok), + Some(s) => match s + .as_object() + .and_then(|m| m.get("state")) + .and_then(|s| s.as_str()) + { + Some("terminate") => Ok(HeartbeatStatus::Terminate), + Some("quiet") => Ok(HeartbeatStatus::Quiet), + _ => Err(error::Protocol::BadType { + expected: "heartbeat response", + received: format!("{}", s), + } + .into()), + }, + } + } +} + +impl Client +where + S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, +{ /// Asynchronously enqueue the given job on the Faktory server. /// /// Returns `Ok` if the job was successfully queued by the Faktory server. @@ -360,31 +390,6 @@ where .read_ok() .await } - - pub(crate) async fn heartbeat(&mut self) -> Result { - single::write_command( - &mut self.stream, - &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), - ) - .await?; - - match single::read_json::<_, serde_json::Value>(&mut self.stream).await? { - None => Ok(HeartbeatStatus::Ok), - Some(s) => match s - .as_object() - .and_then(|m| m.get("state")) - .and_then(|s| s.as_str()) - { - Some("terminate") => Ok(HeartbeatStatus::Terminate), - Some("quiet") => Ok(HeartbeatStatus::Quiet), - _ => Err(error::Protocol::BadType { - expected: "heartbeat response", - received: format!("{}", s), - } - .into()), - }, - } - } } pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) From a1a701efdd48d5278e2a5530069dc3694a853e57 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 4 Apr 2024 22:56:49 +0500 Subject: [PATCH 045/175] Derive Debug for ClientOptions --- src/proto/client/options.rs | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/proto/client/options.rs b/src/proto/client/options.rs index 71b432fb..98fa58ae 100644 --- a/src/proto/client/options.rs +++ b/src/proto/client/options.rs @@ -1,29 +1,23 @@ use crate::proto::WorkerId; -#[derive(Clone)] +#[derive(Clone, Debug)] pub(crate) struct ClientOptions { - /// Hostname to advertise to server. - /// Defaults to machine hostname. + // Hostname to advertise to server. Defaults to machine hostname. pub(crate) hostname: Option, - /// PID to advertise to server. - /// Defaults to process ID. + // PID to advertise to server. Defaults to process ID. pub(crate) pid: Option, - /// Worker ID to advertise to server. - /// Defaults to a GUID. + // Worker ID to advertise to server Defaults to a GUID. pub(crate) wid: Option, - /// Labels to advertise to se/// A stream that can be re-established after failing.rver. - /// Defaults to ["rust"]. + // Labels to advertise to server. Defaults to ["rust"]. pub(crate) labels: Vec, - /// Password to authenticate with - /// Defaults to None. + // Password to authenticate with. Defaults to None. pub(crate) password: Option, - /// Whether this client is instatianted for - /// a worker (i.e. to consume jobs). + // Whether this client is instatianted for a worker (i.e. to consume jobs). pub(crate) is_worker: bool, } From 9e55c24210715077e2111b3d3933727719028665 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 4 Apr 2024 22:58:12 +0500 Subject: [PATCH 046/175] Update self_to_cmd to not use format --- src/proto/single/cmd.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index 11453d35..dc24e343 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -13,8 +13,8 @@ macro_rules! self_to_cmd { #[async_trait::async_trait] impl FaktoryCommand for $struct { async fn issue(&self, w: &mut W) -> Result<(), Error> { - let c = format!("{} ", $cmd); - w.write_all(c.as_bytes()).await?; + w.write_all($cmd.as_bytes()).await?; + w.write_all(b" ").await?; let r = serde_json::to_vec(self).map_err(Error::Serialization)?; w.write_all(&r).await?; Ok(w.write_all(b"\r\n").await?) From 3aba8dac039ed5502f3c7e3e094920f4f65dd98b Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 4 Apr 2024 23:17:09 +0500 Subject: [PATCH 047/175] Add 'new' method for Ack cmd --- src/proto/single/cmd.rs | 11 ++++------- src/worker/mod.rs | 4 ++-- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index dc24e343..d8735c12 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -53,15 +53,12 @@ impl FaktoryCommand for Info { #[derive(Serialize)] pub struct Ack { - #[serde(rename = "jid")] - job_id: JobId, + jid: JobId, } -impl From<&JobId> for Ack { - fn from(job_id: &JobId) -> Self { - Ack { - job_id: job_id.to_owned(), - } +impl Ack { + pub fn new>(jid: J) -> Ack { + Ack { jid: jid.into() } } } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 0a4ce0c0..899ff556 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -179,7 +179,7 @@ impl Result<(), Error> { - self.c.issue(&Ack::from(&jid)).await?.read_ok().await + self.c.issue(&Ack::new(jid)).await?.read_ok().await } async fn report_on_all_workers(&mut self) -> Result<(), Error> { @@ -192,7 +192,7 @@ impl self.c.issue(&Ack::from(jid)).await, + Ok(ref jid) => self.c.issue(&Ack::new(jid.clone())).await, Err(ref fail) => self.c.issue(fail).await, }; From 8270b7ef111251d1108aad60ea5cdc6639ce4a82 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 4 Apr 2024 23:37:55 +0500 Subject: [PATCH 048/175] Add docs to 'generic' and 'generic_with_backtrace' --- src/proto/single/cmd.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index d8735c12..e425896e 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -93,7 +93,7 @@ pub struct Fail { } impl Fail { - pub fn new(job_id: JobId, kind: impl Into, message: impl Into) -> Self { + pub(crate) fn new(job_id: JobId, kind: impl Into, message: impl Into) -> Self { Fail { job_id, kind: kind.into(), @@ -102,16 +102,21 @@ impl Fail { } } - // "unknown" is the errtype used by the go library too - pub fn generic>(job_id: JobId, message: S) -> Self { + // Used for all kind of errors not related to domain logic, e.g. missing handler for this type of job (i.e. + // the worker consumed a job from a specified queue, but has no tool to process it). + // Note that "unknown" is the error type used by the Go library in such cases too. + pub(crate) fn generic>(job_id: JobId, message: S) -> Self { Fail::new(job_id, "unknown", message) } - pub fn set_backtrace(&mut self, lines: Vec) { + pub(crate) fn set_backtrace(&mut self, lines: Vec) { self.backtrace = lines; } - pub fn generic_with_backtrace(jid: JobId, e: E) -> Self + // For any application errors (all kind of errors that could happen in userland when handling the job) + // we want to send backtrace (split into lines) to the Faktory server so that whoever is interested in + // the job result could follow the trace (for debugging essentially). + pub(crate) fn generic_with_backtrace(jid: JobId, e: E) -> Self where E: StdError, { From b97071e3c6a1c4ab4fa01bd8b979b4ff8b83783f Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 4 Apr 2024 23:55:17 +0500 Subject: [PATCH 049/175] Only make commands pub(crate) --- src/proto/mod.rs | 7 ++++--- src/proto/single/cmd.rs | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/proto/mod.rs b/src/proto/mod.rs index a6f968c7..5768b085 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -9,9 +9,10 @@ pub(crate) use client::{ClientOptions, HeartbeatStatus, EXPECTED_PROTOCOL_VERSIO mod single; -pub use single::{ - Ack, Fail, Info, Job, JobBuilder, JobId, Push, PushBulk, QueueAction, QueueControl, WorkerId, -}; +pub use single::{Job, JobBuilder, JobId, WorkerId}; + +pub(crate) use single::{Ack, Fail, Info, Push, PushBulk, QueueAction, QueueControl}; + pub(crate) mod utils; #[cfg(feature = "ent")] diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index e425896e..cc1b7917 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -40,7 +40,7 @@ where // -------------------- INFO ---------------------- -pub struct Info; +pub(crate) struct Info; #[async_trait::async_trait] impl FaktoryCommand for Info { @@ -52,7 +52,7 @@ impl FaktoryCommand for Info { // -------------------- ACK ---------------------- #[derive(Serialize)] -pub struct Ack { +pub(crate) struct Ack { jid: JobId, } @@ -67,7 +67,7 @@ self_to_cmd!(Ack, "ACK"); // -------------------- BEAT ------------------ #[derive(Serialize)] -pub struct Heartbeat { +pub(crate) struct Heartbeat { wid: WorkerId, } @@ -82,7 +82,7 @@ self_to_cmd!(Heartbeat, "BEAT"); // -------------------- FAIL --------------------- #[derive(Serialize, Clone)] -pub struct Fail { +pub(crate) struct Fail { #[serde(rename = "jid")] job_id: JobId, #[serde(rename = "errtype")] @@ -136,7 +136,7 @@ self_to_cmd!(Fail, "FAIL"); // ---------------------- END -------------------- -pub struct End; +pub(crate) struct End; #[async_trait::async_trait] impl FaktoryCommand for End { @@ -147,7 +147,7 @@ impl FaktoryCommand for End { // --------------------- FETCH -------------------- -pub struct Fetch<'a, S> +pub(crate) struct Fetch<'a, S> where S: AsRef, { @@ -178,7 +178,7 @@ where // --------------------- HELLO -------------------- #[derive(Serialize)] -pub struct Hello { +pub(crate) struct Hello { #[serde(skip_serializing_if = "Option::is_none")] pub hostname: Option, #[serde(skip_serializing_if = "Option::is_none")] @@ -228,7 +228,7 @@ self_to_cmd!(Hello, "HELLO"); // --------------------- PUSH -------------------- -pub struct Push(Job); +pub(crate) struct Push(Job); use std::ops::Deref; impl Deref for Push { @@ -256,7 +256,7 @@ impl FaktoryCommand for Push { // ---------------------- PUSHB ------------------- -pub struct PushBulk(Vec); +pub(crate) struct PushBulk(Vec); impl From> for PushBulk { fn from(jobs: Vec) -> Self { @@ -276,12 +276,12 @@ impl FaktoryCommand for PushBulk { // ---------------------- QUEUE ------------------- -pub enum QueueAction { +pub(crate) enum QueueAction { Pause, Resume, } -pub struct QueueControl<'a, S> +pub(crate) struct QueueControl<'a, S> where S: AsRef, { From 6a32b4e14312440072a04db04a4267fc00f1b3e1 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 09:30:52 +0500 Subject: [PATCH 050/175] Add disclaimer on batch and job progress: ent only --- src/proto/client/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index 3f4a5d31..9a0b1efb 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -96,7 +96,8 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// /// `Client` is also useful for retrieving and updating information on a job's execution progress /// (see [`Progress`] and [`ProgressUpdate`]), as well for retrieving a batch's status -/// from the Faktory server (see [`BatchStatus`]). +/// from the Faktory server (see [`BatchStatus`]). But these constructs are only available under `ent` feature +/// and are only supported by Enterprise Faktory. /// /// Fetching a job's execution progress: /// From 84897e9c7c6ab2fae5df121126bfe13b712d80fc Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 10:12:36 +0500 Subject: [PATCH 051/175] Make jid private again --- src/proto/single/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index 815c6a12..2c071a89 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -71,7 +71,7 @@ const JOB_DEFAULT_BACKTRACE: usize = 0; pub struct Job { /// The job's unique identifier. #[builder(default = "JobId::random()")] - pub jid: JobId, + pub(crate) jid: JobId, /// The queue this job belongs to. Usually `default`. #[builder(default = "JOB_DEFAULT_QUEUE.into()")] From fddd71f2e57be460d1f84e5a8c4c1a03df6b65c9 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 11:40:04 +0500 Subject: [PATCH 052/175] Keep `args` private on `Job` --- src/proto/single/mod.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index 2c071a89..c7f1a993 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -84,7 +84,7 @@ pub struct Job { /// The arguments provided for this job. #[builder(setter(custom), default = "Vec::new()")] - pub args: Vec, + pub(crate) args: Vec, /// When this job was created. // note that serializing works correctly here since the default chrono serialization @@ -163,9 +163,10 @@ impl JobBuilder { } /// Setter for the arguments provided for this job. - pub fn args(&mut self, args: Vec) -> &mut Self + pub fn args(&mut self, args: I) -> &mut Self where - A: Into, + I: IntoIterator, + V: Into, { self.args = Some(args.into_iter().map(|s| s.into()).collect()); self From 11c9a875421aff78bf27d69e33a3fea79ae509f9 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 12:20:15 +0500 Subject: [PATCH 053/175] Rm rudimentary extern cate syntax from test binaries --- tests/consumer.rs | 4 ---- tests/producer.rs | 4 ---- 2 files changed, 8 deletions(-) diff --git a/tests/consumer.rs b/tests/consumer.rs index f6fade87..8aab27db 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -1,7 +1,3 @@ -extern crate faktory; -extern crate serde_json; -extern crate url; - mod mock; use faktory::*; diff --git a/tests/producer.rs b/tests/producer.rs index 3104c83f..63841f83 100644 --- a/tests/producer.rs +++ b/tests/producer.rs @@ -1,7 +1,3 @@ -extern crate faktory; -extern crate serde_json; -extern crate url; - mod mock; use faktory::*; From bfc76fcc65eb83fff8bf2918663300d1c9b92862 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 12:22:29 +0500 Subject: [PATCH 054/175] Rm left-over from testing --- tests/producer.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/producer.rs b/tests/producer.rs index 63841f83..ee50d815 100644 --- a/tests/producer.rs +++ b/tests/producer.rs @@ -8,7 +8,6 @@ async fn hello() { let p = Client::connect_with(s.clone(), None).await.unwrap(); let written = s.pop_bytes_written(0); - eprintln!("{:?}", String::from_utf8(written.clone()).unwrap()); assert!(written.starts_with(b"HELLO {")); let written: serde_json::Value = serde_json::from_slice(&written[b"HELLO ".len()..]).unwrap(); let written = written.as_object().unwrap(); From 5ee03bd5cb515e25be3ce5901f92ecf320fff076 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 12:31:00 +0500 Subject: [PATCH 055/175] Use mem::take in pop_bytes_written on MockStream --- tests/mock/inner.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/mock/inner.rs b/tests/mock/inner.rs index b7fd2272..85edc337 100644 --- a/tests/mock/inner.rs +++ b/tests/mock/inner.rs @@ -19,8 +19,7 @@ impl MockStream { pub fn pop_bytes_written(&mut self) -> Vec { let mut du = self.du.lock().unwrap(); - let mut wr = Vec::new(); - mem::swap(&mut wr, du.writer.get_mut()); + let wr = mem::take(du.writer.get_mut()); du.writer.set_position(0); wr } From 8da1e6cf5be3647dd6d0ea795529b5e747b60b00 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 12:32:42 +0500 Subject: [PATCH 056/175] Rm left-over print stmts from testing from tests/mock --- tests/mock/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/mock/mod.rs b/tests/mock/mod.rs index 6a4707b4..17c45327 100644 --- a/tests/mock/mod.rs +++ b/tests/mock/mod.rs @@ -79,7 +79,6 @@ impl Stream { let streams = (0..streams) .map(|_| { let mut s = inner::MockStream::default(); - eprintln!("{:#?}", s); // need to say HELLO if let Some((iters, salt)) = salt { // include salt for pwdhash From 44a3b31a9645bc8e059cd174039ebf8e6147064e Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 13:05:08 +0500 Subject: [PATCH 057/175] Restore hello_c test as hello_worker --- tests/real/community.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/real/community.rs b/tests/real/community.rs index dabf1ab4..4605cf8c 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -6,12 +6,23 @@ use serde_json::Value; use std::{io, sync}; #[tokio::test(flavor = "multi_thread")] -async fn hello_p() { +async fn hello_client() { skip_check!(); let p = Client::connect(None).await.unwrap(); drop(p); } +#[tokio::test(flavor = "multi_thread")] +async fn hello_worker() { + skip_check!(); + let mut c = WorkerBuilder::::default(); + c.hostname("tester".to_string()) + .labels(vec!["foo".to_string(), "bar".to_string()]); + c.register("never_called", |_| async move { unreachable!() }); + let c = c.connect(None).await.unwrap(); + drop(c); +} + #[tokio::test(flavor = "multi_thread")] async fn enqueue_job() { skip_check!(); From 8b6e784cf3d8f44bc7c9f4356e3fb6704fc4907f Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 5 Apr 2024 13:54:49 +0500 Subject: [PATCH 058/175] Clean up 'roundtrip' test --- tests/real/community.rs | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/tests/real/community.rs b/tests/real/community.rs index 4605cf8c..c6701b28 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -30,38 +30,36 @@ async fn enqueue_job() { p.enqueue(JobBuilder::new("order").build()).await.unwrap(); } -async fn process_order(j: Job) -> Result<(), std::io::Error> { - println!("{:?}", j); - assert_eq!(j.kind(), "order"); - Ok(()) -} - #[tokio::test(flavor = "multi_thread")] async fn roundtrip() { skip_check!(); + + let local = "roundtrip"; let jid = String::from("x-job-id-0123456782"); + let mut c = WorkerBuilder::default(); - c.register("order", process_order); - c.register("image", |job| async move { - println!("{:?}", job); - assert_eq!(job.kind(), "image"); - Ok(()) + c.register("order", move |job| async move { + assert_eq!(job.kind(), "order"); + assert_eq!(job.queue, local); + assert_eq!(job.args(), &[Value::from("ISBN-13:9781718501850")]); + Ok::<(), io::Error>(()) }); + c.register("image", |_| async move { unreachable!() }); let mut c = c.connect(None).await.unwrap(); let mut p = Client::connect(None).await.unwrap(); p.enqueue( JobBuilder::new("order") .jid(&jid) .args(vec!["ISBN-13:9781718501850"]) - .queue("roundtrip") + .queue(local) .build(), ) .await .unwrap(); - let had_one = c.run_one(0, &["roundtrip"]).await.unwrap(); + let had_one = c.run_one(0, &[local]).await.unwrap(); assert!(had_one); - let drained = !c.run_one(0, &["roundtrip"]).await.unwrap(); + let drained = !c.run_one(0, &[local]).await.unwrap(); assert!(drained); } From ef9aea073581b35a1f5ac4d5fba0694f53b94d7e Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 12:03:58 +0500 Subject: [PATCH 059/175] Handle SIGTERM in 'run_to_completion' --- Cargo.lock | 202 ++++++++++++++++++++++++++++++++++--------- Cargo.toml | 4 + src/worker/health.rs | 21 +++-- src/worker/mod.rs | 92 +++++++++++++------- src/worker/state.rs | 2 +- 5 files changed, 236 insertions(+), 85 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 362a7651..4eba88db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -138,31 +138,31 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] name = "async-trait" -version = "0.1.78" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -202,9 +202,9 @@ checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" @@ -220,9 +220,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", @@ -235,9 +235,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", ] @@ -251,7 +251,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim 0.11.1", ] [[package]] @@ -414,7 +414,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] @@ -451,6 +451,8 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-test", + "tracing", + "tracing-subscriber", "url", "x509-parser", ] @@ -509,9 +511,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "a06fddc2749e0528d2813f95e050e87e52c8cbbae56223b9babf73b3e53b0cc6" dependencies = [ "cfg-if", "libc", @@ -582,9 +584,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" @@ -627,9 +629,9 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "minimal-lexical" @@ -685,6 +687,16 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-bigint" version = "0.4.4" @@ -777,7 +789,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] @@ -798,6 +810,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "percent-encoding" version = "2.3.1" @@ -821,14 +839,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pkg-config" @@ -941,9 +959,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" dependencies = [ "log", "ring", @@ -955,9 +973,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" [[package]] name = "rustls-webpki" @@ -1025,14 +1043,14 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -1050,6 +1068,30 @@ dependencies = [ "digest", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + [[package]] name = "socket2" version = "0.5.6" @@ -1074,9 +1116,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" @@ -1097,9 +1139,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.53" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", @@ -1147,7 +1189,17 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", ] [[package]] @@ -1198,9 +1250,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -1208,6 +1260,7 @@ dependencies = [ "mio", "num_cpus", "pin-project-lite", + "signal-hook-registry", "socket2", "tokio-macros", "windows-sys 0.48.0", @@ -1221,7 +1274,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] @@ -1258,6 +1311,63 @@ dependencies = [ "tokio-stream", ] +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + [[package]] name = "typenum" version = "1.17.0" @@ -1314,6 +1424,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" @@ -1353,7 +1469,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", "wasm-bindgen-shared", ] @@ -1375,7 +1491,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/Cargo.toml b/Cargo.toml index e527a027..535a7b3d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,15 +40,19 @@ tokio = { version = "1.35.1", features = [ "io-util", "net", "rt", + "time", + "signal", "rt-multi-thread", "time", ] } tokio-native-tls = { version = "0.3.1", optional = true } +tracing = "0.1" url = "2" [dev-dependencies] tokio = { version = "1.35.1", features = ["rt", "macros"] } tokio-test = "0.4.3" +tracing-subscriber = "0.3.18" x509-parser = "0.15.1" # to make -Zminimal-versions work diff --git a/src/worker/health.rs b/src/worker/health.rs index a9f98da1..4d505a80 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -8,6 +8,9 @@ use std::{ use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; use tokio::time::sleep as tokio_sleep; +const CHECK_STATE_INTERVAL_MILLIS: u64 = 100; +const HEARTBEAT_INTERVAL_SECS: u64 = 5; + impl< S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, E: StdError + 'static + Send, @@ -22,14 +25,13 @@ impl< let mut last = time::Instant::now(); loop { - tokio_sleep(time::Duration::from_millis(100)).await; + tokio_sleep(time::Duration::from_millis(CHECK_STATE_INTERVAL_MILLIS)).await; - // has a worker failed? - if target == STATUS_RUNNING + let worker_failure = target == STATUS_RUNNING && statuses .iter() - .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) - { + .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING); + if worker_failure { // tell all workers to exit // (though chances are they've all failed already) for s in statuses { @@ -38,16 +40,18 @@ impl< break Ok(false); } - if last.elapsed().as_secs() < 5 { - // don't sent a heartbeat yet + if last.elapsed().as_secs() < HEARTBEAT_INTERVAL_SECS { continue; } match self.c.heartbeat().await { Ok(hb) => { match hb { - HeartbeatStatus::Ok => {} + HeartbeatStatus::Ok => { + tracing::trace!("Faktory server HEARTBEAT status is OK."); + } HeartbeatStatus::Quiet => { + tracing::trace!("Faktory server HEARTBEAT status is QUIET."); // tell the workers to eventually terminate for s in statuses { s.store(STATUS_QUIET, atomic::Ordering::SeqCst); @@ -55,6 +59,7 @@ impl< target = STATUS_QUIET; } HeartbeatStatus::Terminate => { + tracing::trace!("Faktory server HEARTBEAT status is TERMINATE."); // tell the workers to terminate // *and* fail the current job and immediately return for s in statuses { diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 899ff556..c6452ab6 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -2,10 +2,13 @@ use super::proto::{Client, Reconnect}; use crate::error::Error; use crate::proto::{Ack, Fail, Job, JobId}; use fnv::FnvHashMap; +use std::process; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; use tokio::task::JoinHandle; +use tokio::time::sleep as tokio_sleep; +use tokio::time::Duration as TokioDuration; mod builder; mod health; @@ -18,6 +21,7 @@ pub use runner::JobRunner; pub(crate) const STATUS_RUNNING: usize = 0; pub(crate) const STATUS_QUIET: usize = 1; pub(crate) const STATUS_TERMINATING: usize = 2; +pub(crate) const GRACEFUL_SHUDOWN_PERIOD_MILLIS: u64 = 5_000; type CallbacksRegistry = FnvHashMap>; @@ -141,6 +145,7 @@ pub struct Worker { worker_states: Arc, callbacks: Arc>, terminated: bool, + forever: bool, } impl Worker { @@ -156,6 +161,7 @@ impl Worker { callbacks: Arc::new(callbacks), worker_states: Arc::new(state::WorkerStatesRegistry::new(workers_count)), terminated: false, + forever: false, } } } @@ -224,13 +230,13 @@ impl usize { + async fn force_fail_all_workers(&mut self, reason: &str) -> usize { let mut running = 0; for wstate in self.worker_states.iter() { - let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); + let may_be_jid = wstate.lock().unwrap().take_currently_running(); if let Some(jid) = may_be_jid { running += 1; - let f = Fail::new(jid, "unknown", "terminated"); + let f = Fail::new(jid, "unknown", reason); let _ = match self.c.issue(&f).await { Ok(r) => r.read_ok().await, Err(_) => continue, @@ -287,6 +293,7 @@ impl< callbacks: Arc::clone(&self.callbacks), worker_states: Arc::clone(&self.worker_states), terminated: self.terminated, + forever: self.forever, }) } @@ -328,49 +335,68 @@ impl< assert!(!self.terminated, "do not re-run a terminated worker"); self.report_on_all_workers().await?; - let workers_count = self.worker_states.len(); + let nworkers = self.worker_states.len(); // keep track of the current status of each worker - let statuses: Vec<_> = (0..workers_count) + let statuses: Vec<_> = (0..nworkers) .map(|_| Arc::new(atomic::AtomicUsize::new(STATUS_RUNNING))) .collect(); - let mut workers = Vec::with_capacity(workers_count); - for (worker, status) in statuses.iter().enumerate().take(workers_count) { + let mut workers = Vec::with_capacity(nworkers); + for (worker, status) in statuses.iter().enumerate().take(nworkers) { let handle = self .spawn_worker(Arc::clone(status), worker, queues) .await?; workers.push(handle) } - let exit = self.listen_for_heartbeats(&statuses).await; - - // there are a couple of cases here: - // - // - we got TERMINATE, so we should just return, even if a worker is still running - // - we got TERMINATE and all workers has exited - // - we got an error from heartbeat() - // - self.terminated = exit.is_ok(); + let report = tokio::select! { + _ = tokio::signal::ctrl_c(), if self.forever => { + tracing::info!("SIGINT received, shutting down gracefully."); + tokio::select! { + _ = tokio::signal::ctrl_c() => { + tracing::info!("Another SIGINT received, exiting right now."); + process::exit(0); + }, + _ = tokio_sleep(TokioDuration::from_millis(GRACEFUL_SHUDOWN_PERIOD_MILLIS)) => { + tracing::warn!("Graceful shutdown period of {}ms exceeded, exiting right now.", GRACEFUL_SHUDOWN_PERIOD_MILLIS); + process::exit(0); + }, + nrunning = self.force_fail_all_workers("SIGTERM received") => { + tracing::info!("Number of workers that were still running: {}.", nrunning); + process::exit(0); + } + } + }, + exit = self.listen_for_heartbeats(&statuses) => { + // there are a couple of cases here: + // - we got TERMINATE, so we should just return, even if a worker is still running + // - we got TERMINATE and all workers has exited + // - we got an error from heartbeat() + self.terminated = exit.is_ok(); + + if let Ok(true) = exit { + let running = self.force_fail_all_workers("terminated").await; + if running != 0 { + return Ok(running); + } + } - if let Ok(true) = exit { - let running = self.force_fail_all_workers().await; - if running != 0 { - return Ok(running); - } - } + // we want to expose worker errors, or otherwise the heartbeat error + let mut results = Vec::with_capacity(nworkers); + for w in workers { + results.push(w.await.expect("joined ok")); + } + let aggregated = results.into_iter().collect::, _>>(); - // we want to expose worker errors, or otherwise the heartbeat error - let mut results = Vec::with_capacity(workers_count); - for w in workers { - results.push(w.await.expect("joined ok")); - } - let result = results.into_iter().collect::, _>>(); + match exit { + Ok(_) => aggregated.map(|_| 0), + Err(e) => aggregated.and(Err(e)), + } + }, + }; - match exit { - Ok(_) => result.map(|_| 0), - Err(e) => result.and(Err(e)), - } + report } /// Run this worker until the server tells us to exit or a connection cannot be re-established. @@ -380,7 +406,7 @@ impl< where Q: AsRef, { - use std::process; + self.forever = true; while self.run(queues).await.is_err() { if self.reconnect().await.is_err() { break; diff --git a/src/worker/state.rs b/src/worker/state.rs index 0fb9fe0b..09031fd9 100644 --- a/src/worker/state.rs +++ b/src/worker/state.rs @@ -15,7 +15,7 @@ impl WorkerState { self.last_job_result.take() } - pub(crate) fn take_cuurently_running(&mut self) -> Option { + pub(crate) fn take_currently_running(&mut self) -> Option { self.running_job.take() } From 10ae1199e6657e76d422cf2ec97e578b19beed15 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 12:04:25 +0500 Subject: [PATCH 060/175] Add 'forever' example --- README.md | 14 +++++++++++++- examples/forever.rs | 26 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 examples/forever.rs diff --git a/README.md b/README.md index c5eae769..288690be 100644 --- a/README.md +++ b/README.md @@ -62,8 +62,20 @@ if let Err(e) = w.run(&["default"]).await { } ``` -## Run test suite locally +Also see some usage examples in `examples` directory in the project's root. You can run an example with: + +```bash +cargo run --example example_name +``` + +For instance, to run a `forever` example in release mode, hit: +```bash +cargo run --example forever --release +``` +Make sure you've got Faktory server up-and-running. See [instructions](#run-test-suite-locally) on how to spin up Faktory locally. + +## Run test suite locally First ensure the "Factory" service is running and accepting connections on your machine. To launch it a [Factory](https://hub.docker.com/r/contribsys/faktory/) container with [docker](https://docs.docker.com/engine/install/), run: diff --git a/examples/forever.rs b/examples/forever.rs new file mode 100644 index 00000000..76d48a65 --- /dev/null +++ b/examples/forever.rs @@ -0,0 +1,26 @@ +use faktory::{main as tokio_main, WorkerBuilder}; +use std::io::Error as IOError; + +#[tokio_main] +async fn main() { + tracing_subscriber::fmt::fmt() + .with_max_level(tracing::Level::TRACE) + .init(); + + // create a worker + let mut w = WorkerBuilder::default(); + // register a handler + w.register("job_type", |j| async move { + println!("{:?}", j); + Ok::<(), IOError>(()) + }); + + // connect to Faktrory server + let w = w.connect(None).await.expect("Connected to server"); + + // this will terminate under one of the following conditions: + // - signal from the Faktory server; + // - ctrl+c signal; + // - worker panic; + w.run_to_completion(&["default"]).await +} From a2bb3639919643797f70209a1a5d847f0e35f4ed Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 15:07:54 +0500 Subject: [PATCH 061/175] Pass receiver to 'run' method on Worker --- Cargo.toml | 4 +++- README.md | 2 +- examples/forever.rs | 4 ++-- src/lib.rs | 2 +- src/worker/builder.rs | 6 ++++-- src/worker/mod.rs | 19 ++++++++++++++++--- src/worker/runner.rs | 2 +- tests/consumer.rs | 8 ++++---- 8 files changed, 32 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 535a7b3d..05867fc0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ exclude = [".github", "docker", ".gitignore", "Makefile"] [features] default = [] tls = ["dep:tokio-native-tls", "dep:pin-project"] -binaries = ["dep:clap", "tokio/macros"] +binaries = ["dep:clap"] ent = [] [dependencies] @@ -38,8 +38,10 @@ sha2 = "0.10.0" thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ "io-util", + "macros", "net", "rt", + "sync", "time", "signal", "rt-multi-thread", diff --git a/README.md b/README.md index 288690be..3d306af2 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ w.register("foobar", |job| async move { Ok::<(), io::Error>(()) }); let mut w = w.connect(None).await.unwrap(); -if let Err(e) = w.run(&["default"]).await { +if let Err(e) = w.run(&["default"], None).await { println!("worker failed: {}", e); } ``` diff --git a/examples/forever.rs b/examples/forever.rs index 76d48a65..c8a71709 100644 --- a/examples/forever.rs +++ b/examples/forever.rs @@ -1,7 +1,7 @@ -use faktory::{main as tokio_main, WorkerBuilder}; +use faktory::WorkerBuilder; use std::io::Error as IOError; -#[tokio_main] +#[tokio::main] async fn main() { tracing_subscriber::fmt::fmt() .with_max_level(tracing::Level::TRACE) diff --git a/src/lib.rs b/src/lib.rs index 8f4617e0..52c05774 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -56,7 +56,7 @@ //! Ok::<(), io::Error>(()) //! }); //! let mut w = w.connect(None).await.unwrap(); -//! if let Err(e) = w.run(&["default"]).await { +//! if let Err(e) = w.run(&["default"], None).await { //! println!("worker failed: {}", e); //! } //! # }); diff --git a/src/worker/builder.rs b/src/worker/builder.rs index eba846b5..a8b8495a 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -100,7 +100,8 @@ impl WorkerBuilder { self.opts.is_worker = true; let buffered = BufStream::new(stream); let client = Client::new(buffered, self.opts).await?; - Ok(Worker::new(client, self.workers_count, self.callbacks).await) + let worker = Worker::new(client, self.workers_count, self.callbacks).await; + Ok(worker) } /// Asynchronously connect to a Faktory server. @@ -115,6 +116,7 @@ impl WorkerBuilder { self.opts.is_worker = true; let buffered = BufStream::new(stream); let client = Client::new(buffered, self.opts).await?; - Ok(Worker::new(client, self.workers_count, self.callbacks).await) + let worker = Worker::new(client, self.workers_count, self.callbacks).await; + Ok(worker) } } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index c6452ab6..1be1b525 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -6,6 +6,7 @@ use std::process; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::sync::{mpsc, Mutex}; use tokio::task::JoinHandle; use tokio::time::sleep as tokio_sleep; use tokio::time::Duration as TokioDuration; @@ -119,7 +120,7 @@ type CallbacksRegistry = FnvHashMap>; /// w.register("foo", process_job); /// /// let mut w = w.connect(None).await.unwrap(); -/// if let Err(e) = w.run(&["default"]).await { +/// if let Err(e) = w.run(&["default"], None).await { /// println!("worker failed: {}", e); /// } /// # }); @@ -328,7 +329,11 @@ impl< /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - pub async fn run(&mut self, queues: &[Q]) -> Result + pub async fn run( + &mut self, + queues: &[Q], + channel: Option>>>, + ) -> Result where Q: AsRef, { @@ -368,6 +373,14 @@ impl< } } }, + _ = async { + let ch = channel.unwrap(); + let mut ch = ch.lock().await; + ch.recv().await + }, if channel.is_some() => { + todo!() + }, + exit = self.listen_for_heartbeats(&statuses) => { // there are a couple of cases here: // - we got TERMINATE, so we should just return, even if a worker is still running @@ -407,7 +420,7 @@ impl< Q: AsRef, { self.forever = true; - while self.run(queues).await.is_err() { + while self.run(queues, None).await.is_err() { if self.reconnect().await.is_err() { break; } diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 0bae806a..46d0e30d 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -38,7 +38,7 @@ use std::future::Future; /// }; /// w.register_runner("foo", handler); /// let mut w = w.connect(None).await.unwrap(); -/// if let Err(e) = w.run(&["default"]).await { +/// if let Err(e) = w.run(&["default"], None).await { /// println!("worker failed: {}", e); /// } /// }); diff --git a/tests/consumer.rs b/tests/consumer.rs index 8aab27db..3541b6d2 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -177,7 +177,7 @@ async fn well_behaved() { }\r\n", ); - let jh = spawn(async move { c.run(&["default"]).await }); + let jh = spawn(async move { c.run(&["default"], None).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -242,7 +242,7 @@ async fn no_first_job() { }\r\n", ); - let jh = spawn(async move { c.run(&["default"]).await }); + let jh = spawn(async move { c.run(&["default"], None).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -316,7 +316,7 @@ async fn well_behaved_many() { ); } - let jh = spawn(async move { c.run(&["default"]).await }); + let jh = spawn(async move { c.run(&["default"], None).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -383,7 +383,7 @@ async fn terminate() { }\r\n", ); - let jh = spawn(async move { c.run(&["default"]).await }); + let jh = spawn(async move { c.run(&["default"], None).await }); // the running thread won't ever return, because the job never exits. the heartbeat thingy is // going to eventually send a heartbeat, and we want to respond to that with a "terminate" From bca69f144c1e7fbb187ce7f9d7c003f06be9daa9 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 19:52:46 +0500 Subject: [PATCH 062/175] Introduce 'channel' and 'Message' --- src/lib.rs | 2 +- src/worker/builder.rs | 30 ++++++++++++++++++++-- src/worker/channel.rs | 21 ++++++++++++++++ src/worker/mod.rs | 56 +++++++++++++++++++++++++++++------------ tests/real/community.rs | 17 +++++++++++++ 5 files changed, 107 insertions(+), 19 deletions(-) create mode 100644 src/worker/channel.rs diff --git a/src/lib.rs b/src/lib.rs index 52c05774..ebd47c1a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -75,7 +75,7 @@ mod worker; pub use crate::error::Error; pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect, WorkerId}; -pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; +pub use crate::worker::{channel, JobRunner, Message, Worker, WorkerBuilder}; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] diff --git a/src/worker/builder.rs b/src/worker/builder.rs index a8b8495a..dab7eda2 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -7,6 +7,8 @@ use std::future::Future; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; +pub(crate) const GRACEFUL_SHUTDOWN_PERIOD_MILLIS: u64 = 5_000; + /// Convenience wrapper for building a Faktory worker. /// /// See the [`Worker`] documentation for details. @@ -14,6 +16,7 @@ pub struct WorkerBuilder { opts: ClientOptions, workers_count: usize, callbacks: CallbacksRegistry, + shutdown_timeout: u64, } impl Default for WorkerBuilder { @@ -25,6 +28,7 @@ impl Default for WorkerBuilder { opts: ClientOptions::default(), workers_count: 1, callbacks: CallbacksRegistry::default(), + shutdown_timeout: GRACEFUL_SHUTDOWN_PERIOD_MILLIS, } } } @@ -62,6 +66,16 @@ impl WorkerBuilder { self } + /// Set the graceful shutdown period in milliseconds. + /// + /// This will be used once the worker is sent a termination signal whether + /// it is at the application (see [`Worker::run`](Worker::run)) or OS level + /// (via Ctrl-C signal, see docs for [`Worker::run_to_completion`](Worker::run_to_completion)). + pub fn graceful_shutdown_period(&mut self, millis: u64) -> &mut Self { + self.shutdown_timeout = millis; + self + } + /// Register a handler function for the given job type (`kind`). /// /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler @@ -100,7 +114,13 @@ impl WorkerBuilder { self.opts.is_worker = true; let buffered = BufStream::new(stream); let client = Client::new(buffered, self.opts).await?; - let worker = Worker::new(client, self.workers_count, self.callbacks).await; + let worker = Worker::new( + client, + self.workers_count, + self.callbacks, + self.shutdown_timeout, + ) + .await; Ok(worker) } @@ -116,7 +136,13 @@ impl WorkerBuilder { self.opts.is_worker = true; let buffered = BufStream::new(stream); let client = Client::new(buffered, self.opts).await?; - let worker = Worker::new(client, self.workers_count, self.callbacks).await; + let worker = Worker::new( + client, + self.workers_count, + self.callbacks, + self.shutdown_timeout, + ) + .await; Ok(worker) } } diff --git a/src/worker/channel.rs b/src/worker/channel.rs new file mode 100644 index 00000000..677e217e --- /dev/null +++ b/src/worker/channel.rs @@ -0,0 +1,21 @@ +#[cfg(doc)] +use super::Worker; + +use tokio::sync::mpsc::{self, Receiver, Sender}; + +/// Message sent to running worker. +/// +/// See documentation to [`Worker::run`](Worker::run) +pub enum Message { + /// Kill the process. + ExitProcess, + + /// Return control to the userland. + ReturnControl, +} + +/// Returns multiple producers and a singler consumer of a [`Message`]. +pub fn channel() -> (Sender, Receiver) { + let buf_size = std::mem::size_of::(); + mpsc::channel::(buf_size) +} diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 1be1b525..4e5e0e6f 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -6,23 +6,24 @@ use std::process; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; -use tokio::sync::{mpsc, Mutex}; +use tokio::sync::mpsc; use tokio::task::JoinHandle; use tokio::time::sleep as tokio_sleep; use tokio::time::Duration as TokioDuration; mod builder; +mod channel; mod health; mod runner; mod state; pub use builder::WorkerBuilder; +pub use channel::{channel, Message}; pub use runner::JobRunner; pub(crate) const STATUS_RUNNING: usize = 0; pub(crate) const STATUS_QUIET: usize = 1; pub(crate) const STATUS_TERMINATING: usize = 2; -pub(crate) const GRACEFUL_SHUDOWN_PERIOD_MILLIS: u64 = 5_000; type CallbacksRegistry = FnvHashMap>; @@ -147,6 +148,7 @@ pub struct Worker { callbacks: Arc>, terminated: bool, forever: bool, + shutdown_timeout: u64, } impl Worker { @@ -156,13 +158,19 @@ impl Worker Worker { - async fn new(c: Client, workers_count: usize, callbacks: CallbacksRegistry) -> Self { + async fn new( + c: Client, + workers_count: usize, + callbacks: CallbacksRegistry, + shutdown_timeout: u64, + ) -> Self { Worker { c, callbacks: Arc::new(callbacks), worker_states: Arc::new(state::WorkerStatesRegistry::new(workers_count)), terminated: false, forever: false, + shutdown_timeout, } } } @@ -295,6 +303,7 @@ impl< worker_states: Arc::clone(&self.worker_states), terminated: self.terminated, forever: self.forever, + shutdown_timeout: self.shutdown_timeout, }) } @@ -322,17 +331,20 @@ impl< } /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). + /// until the server tells the worker to disengage or [`Message::ReturnControl`] is sent (`Ok` is returned). /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. + /// The value in an `Ok` indicates the number of workers that may still be processing jobs, but `0` can also + /// indicate the [graceful shutdown period](WorkerBuilder::graceful_shutdown_period) has been exceeded. /// /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. + /// + /// In order to terminate the worker process for good (as opposed to returning control to your app), use [`Message::ExitProcess`]. pub async fn run( &mut self, queues: &[Q], - channel: Option>>>, + channel: Option>, ) -> Result where Q: AsRef, @@ -356,6 +368,7 @@ impl< } let report = tokio::select! { + // SIGTERM received: _ = tokio::signal::ctrl_c(), if self.forever => { tracing::info!("SIGINT received, shutting down gracefully."); tokio::select! { @@ -363,8 +376,8 @@ impl< tracing::info!("Another SIGINT received, exiting right now."); process::exit(0); }, - _ = tokio_sleep(TokioDuration::from_millis(GRACEFUL_SHUDOWN_PERIOD_MILLIS)) => { - tracing::warn!("Graceful shutdown period of {}ms exceeded, exiting right now.", GRACEFUL_SHUDOWN_PERIOD_MILLIS); + _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { + tracing::warn!("Graceful shutdown period of {}ms exceeded, exiting right now.", self.shutdown_timeout); process::exit(0); }, nrunning = self.force_fail_all_workers("SIGTERM received") => { @@ -373,14 +386,24 @@ impl< } } }, - _ = async { - let ch = channel.unwrap(); - let mut ch = ch.lock().await; - ch.recv().await - }, if channel.is_some() => { - todo!() + // Message from userland received: + Some(msg) = async { let mut ch = channel.unwrap(); ch.recv().await }, if channel.is_some() => { + let nrunning = tokio::select! { + _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { + tracing::warn!("Graceful shutdown period of {}ms exceeded.", self.shutdown_timeout); + 0 + }, + nrunning = self.force_fail_all_workers("termination signal received over channel") => { + tracing::info!("Number of workers that were still running: {}.", nrunning); + nrunning + } + }; + match msg { + Message::ExitProcess => process::exit(0), + Message::ReturnControl => return Ok(nrunning), + } }, - + // Instruction from Faktory received or error occurred: exit = self.listen_for_heartbeats(&statuses) => { // there are a couple of cases here: // - we got TERMINATE, so we should just return, even if a worker is still running @@ -414,7 +437,8 @@ impl< /// Run this worker until the server tells us to exit or a connection cannot be re-established. /// - /// This function never returns. When the worker decides to exit, the process is terminated. + /// This function never returns. When the worker decides to exit or SIGTERM is received, + /// the process is terminated within the [shutdown period](WorkerBuilder::graceful_shutdown_period). pub async fn run_to_completion(mut self, queues: &[Q]) -> ! where Q: AsRef, diff --git a/tests/real/community.rs b/tests/real/community.rs index c6701b28..0de948fb 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -319,3 +319,20 @@ async fn test_jobs_created_with_builder() { .unwrap(); assert!(had_job); } + +#[tokio::test(flavor = "multi_thread")] +async fn test_shutdown() { + use faktory::{channel, Message}; + skip_check!(); + + let mut w = WorkerBuilder::default(); + w.register("job_kind", process_order); + let mut w = w.connect(None).await.unwrap(); + + let (tx, rx) = channel(); + let jh = tokio::spawn(async move { w.run(&["default"], Some(rx)).await }); + tx.send(Message::ReturnControl).await.expect("sent ok"); + + let nrunning = jh.await.expect("joined ok").unwrap(); + assert_eq!(nrunning, 0); +} From 5d1a203ec421cc1e0e0dda890bf5532394a1b07a Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 23:29:39 +0500 Subject: [PATCH 063/175] Process ExitNow and ReturnNow messages. Add test --- src/worker/channel.rs | 21 ++++++++++++++---- src/worker/mod.rs | 48 ++++++++++++++++++++++++++++++++++++++-- tests/real/community.rs | 49 +++++++++++++++++++++++++++++++++++++---- 3 files changed, 108 insertions(+), 10 deletions(-) diff --git a/src/worker/channel.rs b/src/worker/channel.rs index 677e217e..f7ca06b9 100644 --- a/src/worker/channel.rs +++ b/src/worker/channel.rs @@ -1,5 +1,5 @@ #[cfg(doc)] -use super::Worker; +use super::{Worker, WorkerBuilder}; use tokio::sync::mpsc::{self, Receiver, Sender}; @@ -7,11 +7,24 @@ use tokio::sync::mpsc::{self, Receiver, Sender}; /// /// See documentation to [`Worker::run`](Worker::run) pub enum Message { - /// Kill the process. - ExitProcess, + /// Ternimate the process with the provided status code. + Exit(i32), - /// Return control to the userland. + /// Ternimate the process with the provided status code right away. + /// + /// Analogue of sending Ctrl+C signal twice on TTY. + /// Normally, though, you will want to use [`Message::Exit`], which allows for + /// graceful shutdown. + ExitNow(i32), + + /// Return control to the calling site after performing the clean-up logic. ReturnControl, + + /// Return control to the calling site right away. + /// + /// Normally, though, you will want to use [`Message::ReturnControl`], which allows for + /// clean-up within the specified [`time-out`](WorkerBuilder::graceful_shutdown_period). + ReturnControlNow, } /// Returns multiple producers and a singler consumer of a [`Message`]. diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 4e5e0e6f..272a0f88 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -340,7 +340,42 @@ impl< /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. /// - /// In order to terminate the worker process for good (as opposed to returning control to your app), use [`Message::ExitProcess`]. + /// In order to terminate the worker process for good (as opposed to returning control to your app), use [`Message::Exit`]. + /// + /// ```no_run + /// # tokio_test::block_on(async { + /// use faktory::{Client, Job, Message, WorkerBuilder, channel}; + /// + /// let mut cl = Client::connect(None).await.unwrap(); + /// cl.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); + /// + /// let mut w = WorkerBuilder::default(); + /// w.graceful_shutdown_period(5_000); + /// w.register("foobar", |_j| async { Ok::<(), std::io::Error>(()) }); + /// let mut w = w.connect(None).await.unwrap(); + /// + /// let (tx, rx) = channel(); + /// let _handle = tokio::spawn(async move { w.run(&["qname"], Some(rx)).await }); + /// tx.send(Message::Exit(0)).await.expect("sent ok"); + /// # }); + /// ``` + /// + /// In case you have no intention to send termination signals, the example from above + /// can be layed out as follows: + /// ```no_run + /// # tokio_test::block_on(async { + /// use faktory::{Client, Job, WorkerBuilder}; + /// + /// let mut cl = Client::connect(None).await.unwrap(); + /// cl.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); + /// + /// let mut w = WorkerBuilder::default(); + /// w.register("foobar", |_j| async { Ok::<(), std::io::Error>(()) }); + /// let mut w = w.connect(None).await.unwrap(); + /// + /// let _handle = tokio::spawn(async move { w.run(&["qname"], None).await }); + /// # }); + /// ``` pub async fn run( &mut self, queues: &[Q], @@ -388,6 +423,14 @@ impl< }, // Message from userland received: Some(msg) = async { let mut ch = channel.unwrap(); ch.recv().await }, if channel.is_some() => { + if let Message::ExitNow(code) = msg { + tracing::info!("Received signal to immediately exit with status {}.", code); + process::exit(code); + } + if let Message::ReturnControlNow = msg { + tracing::info!("Received signal to immediately return control. Returning without clean-up."); + return Ok(0) + } let nrunning = tokio::select! { _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { tracing::warn!("Graceful shutdown period of {}ms exceeded.", self.shutdown_timeout); @@ -399,8 +442,9 @@ impl< } }; match msg { - Message::ExitProcess => process::exit(0), + Message::Exit(code) => process::exit(code), Message::ReturnControl => return Ok(nrunning), + _ => unreachable!("ExitNow and ReturnControlNow variants are already handled above.") } }, // Instruction from Faktory received or error occurred: diff --git a/tests/real/community.rs b/tests/real/community.rs index 0de948fb..01f8bdf9 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -321,18 +321,59 @@ async fn test_jobs_created_with_builder() { } #[tokio::test(flavor = "multi_thread")] -async fn test_shutdown() { +async fn test_shutdown_signals_handling() { use faktory::{channel, Message}; skip_check!(); + let qname = "test_shutdown_signals_handling"; + let jkind = "heavy"; + let shutdown_timeout = 500; + + // get a client and a job to enqueue + let mut cl = Client::connect(None).await.unwrap(); + let j = JobBuilder::new(jkind) + .queue(qname) + // task will be being processed for at least 1 second + .args(vec![1000]) + .build(); + + let (tx, mut rx_for_test_purposes) = tokio::sync::mpsc::channel::(1); + let tx = sync::Arc::new(tx); + + // get a connected worker let mut w = WorkerBuilder::default(); - w.register("job_kind", process_order); + w.graceful_shutdown_period(shutdown_timeout); + w.register(jkind, move |j| { + let tx = sync::Arc::clone(&tx); + Box::pin(async move { + let complexity = j.args().iter().next().unwrap().as_u64().unwrap(); + tx.send(true).await.unwrap(); // inform that we are now starting to process the job + tokio::time::sleep(tokio::time::Duration::from_millis(complexity)).await; + Ok::<(), io::Error>(()) + }) + }); let mut w = w.connect(None).await.unwrap(); + // start consuming let (tx, rx) = channel(); - let jh = tokio::spawn(async move { w.run(&["default"], Some(rx)).await }); + let jh = tokio::spawn(async move { w.run(&[qname], Some(rx)).await }); + + // enqueue the job and wait for a message from the handler and ... + cl.enqueue(j).await.unwrap(); + rx_for_test_purposes.recv().await; + // ... immediately signal to return control tx.send(Message::ReturnControl).await.expect("sent ok"); + // one worker was processing a task when we interrupted it let nrunning = jh.await.expect("joined ok").unwrap(); - assert_eq!(nrunning, 0); + assert_eq!(nrunning, 1); + + // our worker from above has reported a failure to + // the Faktory server and so latter feed the job to + // this new worker + let mut w = WorkerBuilder::default(); + w.register(jkind, |_j| async { Ok::<(), io::Error>(()) }); + let mut w = w.connect(None).await.unwrap(); + let had_one = w.run_one(0, &[qname]).await.unwrap(); + assert!(had_one) } From 9f597573abc838a7653265fc34af88d9023ea5b8 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 23:31:31 +0500 Subject: [PATCH 064/175] Use public method names as example names --- README.md | 4 ++-- examples/{forever.rs => run_to_completion.rs} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename examples/{forever.rs => run_to_completion.rs} (100%) diff --git a/README.md b/README.md index 3d306af2..f35e9ff8 100644 --- a/README.md +++ b/README.md @@ -68,10 +68,10 @@ Also see some usage examples in `examples` directory in the project's root. You cargo run --example example_name ``` -For instance, to run a `forever` example in release mode, hit: +For instance, to run a `run_to_completion` example in release mode, hit: ```bash -cargo run --example forever --release +cargo run --example run_to_completion --release ``` Make sure you've got Faktory server up-and-running. See [instructions](#run-test-suite-locally) on how to spin up Faktory locally. diff --git a/examples/forever.rs b/examples/run_to_completion.rs similarity index 100% rename from examples/forever.rs rename to examples/run_to_completion.rs From a38cde92e7c2a86445fc99c982d4d67895d9bc84 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 23:37:11 +0500 Subject: [PATCH 065/175] Give Faktory server time to schedule the failed job --- tests/real/community.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/real/community.rs b/tests/real/community.rs index 01f8bdf9..10555e5d 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -368,6 +368,9 @@ async fn test_shutdown_signals_handling() { let nrunning = jh.await.expect("joined ok").unwrap(); assert_eq!(nrunning, 1); + // give Faktory server a second: + tokio::time::sleep(tokio::time::Duration::from_millis(1000)).await; + // our worker from above has reported a failure to // the Faktory server and so latter feed the job to // this new worker From ddb26c36c3c593798681117ab7b031ae644eddc1 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Thu, 21 Mar 2024 23:40:29 +0500 Subject: [PATCH 066/175] Remove assertions on job re-scheduling --- tests/real/community.rs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/tests/real/community.rs b/tests/real/community.rs index 10555e5d..aa5ccd0c 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -367,16 +367,4 @@ async fn test_shutdown_signals_handling() { // one worker was processing a task when we interrupted it let nrunning = jh.await.expect("joined ok").unwrap(); assert_eq!(nrunning, 1); - - // give Faktory server a second: - tokio::time::sleep(tokio::time::Duration::from_millis(1000)).await; - - // our worker from above has reported a failure to - // the Faktory server and so latter feed the job to - // this new worker - let mut w = WorkerBuilder::default(); - w.register(jkind, |_j| async { Ok::<(), io::Error>(()) }); - let mut w = w.connect(None).await.unwrap(); - let had_one = w.run_one(0, &[qname]).await.unwrap(); - assert!(had_one) } From d73de7ce0fe75ed9d4649801ad5a3604cb60caa9 Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Fri, 22 Mar 2024 22:36:49 +0500 Subject: [PATCH 067/175] Mark worker as terminated when message from userland reveived --- src/worker/mod.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 272a0f88..1d062c2a 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -429,7 +429,8 @@ impl< } if let Message::ReturnControlNow = msg { tracing::info!("Received signal to immediately return control. Returning without clean-up."); - return Ok(0) + self.terminated = true; + return Ok(0); } let nrunning = tokio::select! { _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { @@ -443,7 +444,10 @@ impl< }; match msg { Message::Exit(code) => process::exit(code), - Message::ReturnControl => return Ok(nrunning), + Message::ReturnControl => { + self.terminated = true; + return Ok(nrunning); + }, _ => unreachable!("ExitNow and ReturnControlNow variants are already handled above.") } }, From 0fc49ed39b5e992c018b621ff336f1005327afbb Mon Sep 17 00:00:00 2001 From: Pavel Mikhalkevich Date: Fri, 22 Mar 2024 22:37:38 +0500 Subject: [PATCH 068/175] Update test to cover 'ReturnControlNow' case --- tests/real/community.rs | 53 +++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/tests/real/community.rs b/tests/real/community.rs index aa5ccd0c..43c0817a 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -3,7 +3,7 @@ extern crate faktory; use crate::skip_check; use faktory::{Client, Job, JobBuilder, WorkerBuilder}; use serde_json::Value; -use std::{io, sync}; +use std::{future::Future, io, sync}; #[tokio::test(flavor = "multi_thread")] async fn hello_client() { @@ -320,6 +320,27 @@ async fn test_jobs_created_with_builder() { assert!(had_job); } +use faktory::mpsc; +use std::pin::Pin; +fn process_hard_task( + sender: sync::Arc>, +) -> Box< + dyn Fn(Job) -> Pin> + Send>> + + Send + + Sync + + 'static, +> { + return Box::new(move |j: Job| { + let sender = sync::Arc::clone(&sender); + Box::pin(async move { + let complexity = j.args().iter().next().unwrap().as_u64().unwrap(); + sender.send(true).await.unwrap(); // inform that we are now starting to process the job + tokio::time::sleep(tokio::time::Duration::from_millis(complexity)).await; + Ok::<(), io::Error>(()) + }) + }); +} + #[tokio::test(flavor = "multi_thread")] async fn test_shutdown_signals_handling() { use faktory::{channel, Message}; @@ -343,15 +364,7 @@ async fn test_shutdown_signals_handling() { // get a connected worker let mut w = WorkerBuilder::default(); w.graceful_shutdown_period(shutdown_timeout); - w.register(jkind, move |j| { - let tx = sync::Arc::clone(&tx); - Box::pin(async move { - let complexity = j.args().iter().next().unwrap().as_u64().unwrap(); - tx.send(true).await.unwrap(); // inform that we are now starting to process the job - tokio::time::sleep(tokio::time::Duration::from_millis(complexity)).await; - Ok::<(), io::Error>(()) - }) - }); + w.register(jkind, process_hard_task(tx)); let mut w = w.connect(None).await.unwrap(); // start consuming @@ -367,4 +380,24 @@ async fn test_shutdown_signals_handling() { // one worker was processing a task when we interrupted it let nrunning = jh.await.expect("joined ok").unwrap(); assert_eq!(nrunning, 1); + + // let's repeat the same actions with a little tweak: + // we will signal to return control right away. + let (tx, mut rx_for_test_purposes) = tokio::sync::mpsc::channel::(1); + let tx = sync::Arc::new(tx); + let mut w = WorkerBuilder::default(); + w.graceful_shutdown_period(shutdown_timeout); + w.register(jkind, process_hard_task(tx)); + let mut w = w.connect(None).await.unwrap(); + let (tx, rx) = channel(); + let jh = tokio::spawn(async move { w.run(&[qname], Some(rx)).await }); + cl.enqueue(JobBuilder::new(jkind).queue(qname).args(vec![1000]).build()) + .await + .unwrap(); + rx_for_test_purposes.recv().await; + // signalling to yield immediately + tx.send(Message::ReturnControlNow).await.expect("sent ok"); + let nrunning = jh.await.expect("joined ok").unwrap(); + // we did not even have a change to examine the current workers state + assert_eq!(nrunning, 0); } From e5efcfba756009ce622cf74befbb3535ec5c91f9 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 22 Mar 2024 23:11:03 +0500 Subject: [PATCH 069/175] Add 'connect_worker' with common logic --- src/worker/builder.rs | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index dab7eda2..50bd3caf 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -66,7 +66,7 @@ impl WorkerBuilder { self } - /// Set the graceful shutdown period in milliseconds. + /// Set the graceful shutdown period in milliseconds. Defaults to 5000. /// /// This will be used once the worker is sent a termination signal whether /// it is at the application (see [`Worker::run`](Worker::run)) or OS level @@ -104,13 +104,10 @@ impl WorkerBuilder { self } - /// Asynchronously connect to a Faktory server with a non-standard stream. - pub async fn connect_with( + async fn connect_worker( mut self, stream: S, - pwd: Option, ) -> Result, E>, Error> { - self.opts.password = pwd; self.opts.is_worker = true; let buffered = BufStream::new(stream); let client = Client::new(buffered, self.opts).await?; @@ -124,25 +121,25 @@ impl WorkerBuilder { Ok(worker) } + /// Asynchronously connect to a Faktory server with a non-standard stream. + pub async fn connect_with( + mut self, + stream: S, + pwd: Option, + ) -> Result, E>, Error> { + self.opts.password = pwd; + self.connect_worker(stream).await + } + /// Asynchronously connect to a Faktory server. /// /// See [`connect`](WorkerBuilder::connect). pub async fn connect( - mut self, + self, url: Option<&str>, ) -> Result, E>, Error> { let url = utils::parse_provided_or_from_env(url)?; let stream = TokioStream::connect(utils::host_from_url(&url)).await?; - self.opts.is_worker = true; - let buffered = BufStream::new(stream); - let client = Client::new(buffered, self.opts).await?; - let worker = Worker::new( - client, - self.workers_count, - self.callbacks, - self.shutdown_timeout, - ) - .await; - Ok(worker) + self.connect_worker(stream).await } } From c6aecedbc034dd9ced8111fe8e4d77f0342587b4 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 22 Mar 2024 23:14:52 +0500 Subject: [PATCH 070/175] Re-export 'tokio' lib --- tests/real/community.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/real/community.rs b/tests/real/community.rs index 43c0817a..b1ee520a 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -320,7 +320,7 @@ async fn test_jobs_created_with_builder() { assert!(had_job); } -use faktory::mpsc; +use tokio::sync::mpsc; use std::pin::Pin; fn process_hard_task( sender: sync::Arc>, From 90b8c11f186bfde3040212413bedf6c2cc2eb1e3 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 22 Mar 2024 23:20:35 +0500 Subject: [PATCH 071/175] Add 'run' to examples --- examples/run.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 examples/run.rs diff --git a/examples/run.rs b/examples/run.rs new file mode 100644 index 00000000..11534ca4 --- /dev/null +++ b/examples/run.rs @@ -0,0 +1,40 @@ +use faktory::{channel, main, Message, WorkerBuilder}; +use std::io::Error as IOError; + +#[main] +async fn main() { + tracing_subscriber::fmt::fmt() + .with_max_level(tracing::Level::TRACE) + .init(); + + // create a worker + let mut w = WorkerBuilder::default(); + + // customize graceful shutdown time-out + w.graceful_shutdown_period(2_000); + + // register a handler + w.register("job_type", |j| async move { + println!("{:?}", j); + Ok::<(), IOError>(()) + }); + + // connect to the Faktrory server + let mut w = w.connect(None).await.expect("Connected to server"); + + // create a channel to send a signal to the worker + let (tx, rx) = channel(); + + let handle = tokio::spawn(async move { w.run(&["default"], Some(rx)).await }); + + tx.send(Message::ReturnControl).await.expect("sent ok"); + + let nrunning = handle.await.expect("joined ok").expect("no worker errors"); + + // nrunng will be 0, since our workers are idle in this example: + // we are not pushing jobs to the Faktory server + tracing::info!( + "Number of workers that were running when the signal was sent: {}", + nrunning + ); +} From 8ad3e60667c57ce335e57ac2ac842879d942719d Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 23 Mar 2024 08:46:44 +0500 Subject: [PATCH 072/175] Derive standards trait for Message. Mark as non-exhaustive --- examples/run.rs | 2 +- src/worker/channel.rs | 6 +++++- src/worker/mod.rs | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/examples/run.rs b/examples/run.rs index 11534ca4..0c854275 100644 --- a/examples/run.rs +++ b/examples/run.rs @@ -27,7 +27,7 @@ async fn main() { let handle = tokio::spawn(async move { w.run(&["default"], Some(rx)).await }); - tx.send(Message::ReturnControl).await.expect("sent ok"); + tx.send(Message::Exit(100)).await.expect("sent ok"); let nrunning = handle.await.expect("joined ok").expect("no worker errors"); diff --git a/src/worker/channel.rs b/src/worker/channel.rs index f7ca06b9..e7d2a0b1 100644 --- a/src/worker/channel.rs +++ b/src/worker/channel.rs @@ -5,9 +5,13 @@ use tokio::sync::mpsc::{self, Receiver, Sender}; /// Message sent to running worker. /// -/// See documentation to [`Worker::run`](Worker::run) +/// See documentation to [`Worker::run`](Worker::run), +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +#[non_exhaustive] pub enum Message { /// Ternimate the process with the provided status code. + /// + /// Analogue of hitting Ctrl+C in [`Worker::run_to_completion`]. Exit(i32), /// Ternimate the process with the provided status code right away. diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 1d062c2a..f8af2135 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -432,6 +432,9 @@ impl< self.terminated = true; return Ok(0); } + + tracing::info!("Received termination signal: {:?}. Cleaning up...", msg); + let nrunning = tokio::select! { _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { tracing::warn!("Graceful shutdown period of {}ms exceeded.", self.shutdown_timeout); From fc54e9f24a5671ee3f8d25c7b6fea55ca0e7d4cd Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 6 Apr 2024 22:15:01 +0500 Subject: [PATCH 073/175] Clean up --- examples/run.rs | 4 ++-- tests/real/community.rs | 4 +--- tests/real/enterprise.rs | 2 -- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/examples/run.rs b/examples/run.rs index 0c854275..06180283 100644 --- a/examples/run.rs +++ b/examples/run.rs @@ -1,7 +1,7 @@ -use faktory::{channel, main, Message, WorkerBuilder}; +use faktory::{channel, Message, WorkerBuilder}; use std::io::Error as IOError; -#[main] +#[tokio::main] async fn main() { tracing_subscriber::fmt::fmt() .with_max_level(tracing::Level::TRACE) diff --git a/tests/real/community.rs b/tests/real/community.rs index b1ee520a..3345fd5a 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,5 +1,3 @@ -extern crate faktory; - use crate::skip_check; use faktory::{Client, Job, JobBuilder, WorkerBuilder}; use serde_json::Value; @@ -320,8 +318,8 @@ async fn test_jobs_created_with_builder() { assert!(had_job); } -use tokio::sync::mpsc; use std::pin::Pin; +use tokio::sync::mpsc; fn process_hard_task( sender: sync::Arc>, ) -> Box< diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index 26381d73..74bb5ff0 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -1,5 +1,3 @@ -extern crate faktory; - use crate::skip_if_not_enterprise; use crate::utils::learn_faktory_url; use chrono::Utc; From b633b1925dab95f7ae9ab904ea5522de7162fb10 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 6 Apr 2024 22:17:15 +0500 Subject: [PATCH 074/175] Rm 'extern' declaration from tests/real --- tests/real/community.rs | 2 -- tests/real/enterprise.rs | 2 -- 2 files changed, 4 deletions(-) diff --git a/tests/real/community.rs b/tests/real/community.rs index c6701b28..d8b36885 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,5 +1,3 @@ -extern crate faktory; - use crate::skip_check; use faktory::{Client, Job, JobBuilder, WorkerBuilder}; use serde_json::Value; diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index 26381d73..74bb5ff0 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -1,5 +1,3 @@ -extern crate faktory; - use crate::skip_if_not_enterprise; use crate::utils::learn_faktory_url; use chrono::Utc; From dd3a9892ef6e3443fa7fc7b359220219b4dc01a7 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 7 Apr 2024 18:04:06 +0500 Subject: [PATCH 075/175] Make min-versions pass again --- Cargo.lock | 154 +++++++++++++++-------------------------------------- Cargo.toml | 2 +- 2 files changed, 43 insertions(+), 113 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 362a7651..34dcb7a4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -138,31 +138,31 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] name = "async-trait" -version = "0.1.78" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -202,15 +202,15 @@ checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.90" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +checksum = "1fd97381a8cc6493395a5afc4c691c1084b3768db713b73aa215217aa245d153" [[package]] name = "cfg-if" @@ -220,9 +220,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", @@ -235,9 +235,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", ] @@ -251,7 +251,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim 0.11.1", ] [[package]] @@ -414,7 +414,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] @@ -437,12 +437,12 @@ dependencies = [ "derive_builder", "fnv", "hostname", + "native-tls", "num-bigint", "oid-registry", "openssl", "pin-project", "rand", - "rustls", "serde", "serde_derive", "serde_json", @@ -509,9 +509,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "a06fddc2749e0528d2813f95e050e87e52c8cbbae56223b9babf73b3e53b0cc6" dependencies = [ "cfg-if", "libc", @@ -582,9 +582,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" @@ -627,9 +627,9 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "minimal-lexical" @@ -777,7 +777,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] @@ -821,14 +821,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pkg-config" @@ -896,21 +896,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - [[package]] name = "rustc-demangle" version = "0.1.23" @@ -939,37 +924,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" - -[[package]] -name = "rustls-webpki" -version = "0.102.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "ryu" version = "1.0.17" @@ -1025,14 +979,14 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -1060,12 +1014,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "strsim" version = "0.10.0" @@ -1074,15 +1022,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" @@ -1097,9 +1039,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.53" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", @@ -1147,7 +1089,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] @@ -1198,9 +1140,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -1221,7 +1163,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", ] [[package]] @@ -1291,12 +1233,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "url" version = "2.5.0" @@ -1353,7 +1289,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", "wasm-bindgen-shared", ] @@ -1375,7 +1311,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1565,9 +1501,3 @@ dependencies = [ "thiserror", "time", ] - -[[package]] -name = "zeroize" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/Cargo.toml b/Cargo.toml index e527a027..938f6729 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,7 +54,7 @@ x509-parser = "0.15.1" # to make -Zminimal-versions work [target.'cfg(any())'.dependencies] openssl = { version = "0.10.60", optional = true } -rustls = "0.22.1" +native-tls = { version = "0.2.4", optional = true } num-bigint = "0.4.2" oid-registry = "0.6.1" chrono = "0.4.32" From 6bc3fd61db13cec7aee8c8ef8fc6b02d3156ff95 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 7 Apr 2024 18:04:06 +0500 Subject: [PATCH 076/175] Make min-versions pass again --- Cargo.lock | 76 +++--------------------------------------------------- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 74 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4eba88db..0a5c9539 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -208,9 +208,9 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.90" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +checksum = "1fd97381a8cc6493395a5afc4c691c1084b3768db713b73aa215217aa245d153" [[package]] name = "cfg-if" @@ -437,12 +437,12 @@ dependencies = [ "derive_builder", "fnv", "hostname", + "native-tls", "num-bigint", "oid-registry", "openssl", "pin-project", "rand", - "rustls", "serde", "serde_derive", "serde_json", @@ -914,21 +914,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - [[package]] name = "rustc-demangle" version = "0.1.23" @@ -957,37 +942,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" - -[[package]] -name = "rustls-webpki" -version = "0.102.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "ryu" version = "1.0.17" @@ -1102,12 +1056,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "strsim" version = "0.10.0" @@ -1120,12 +1068,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - [[package]] name = "syn" version = "1.0.109" @@ -1401,12 +1343,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "url" version = "2.5.0" @@ -1681,9 +1617,3 @@ dependencies = [ "thiserror", "time", ] - -[[package]] -name = "zeroize" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/Cargo.toml b/Cargo.toml index 05867fc0..c4946e4d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,7 +60,7 @@ x509-parser = "0.15.1" # to make -Zminimal-versions work [target.'cfg(any())'.dependencies] openssl = { version = "0.10.60", optional = true } -rustls = "0.22.1" +native-tls = { version = "0.2.4", optional = true } num-bigint = "0.4.2" oid-registry = "0.6.1" chrono = "0.4.32" From 9077b01a6830de398242c22358a5d73efd80b6c2 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 10 Apr 2024 00:29:46 +0500 Subject: [PATCH 077/175] Ignore mutants output --- .gitignore | 1 + mutants.out.old/caught.txt | 66 - mutants.out.old/debug.log | 1727 -- mutants.out.old/lock.json | 6 - mutants.out.old/log/baseline.log | 256 - .../src__bin__loadtest.rs_line_109_col_36.log | 168 - ...__bin__loadtest.rs_line_109_col_36_001.log | 168 - .../src__bin__loadtest.rs_line_109_col_52.log | 168 - ...__bin__loadtest.rs_line_109_col_52_001.log | 168 - .../src__bin__loadtest.rs_line_110_col_38.log | 168 - ...__bin__loadtest.rs_line_110_col_38_001.log | 168 - .../src__bin__loadtest.rs_line_15_col_5.log | 264 - .../src__bin__loadtest.rs_line_78_col_24.log | 168 - ...c__bin__loadtest.rs_line_78_col_24_001.log | 168 - .../src__bin__loadtest.rs_line_78_col_28.log | 168 - .../src__bin__loadtest.rs_line_87_col_70.log | 168 - .../src__bin__loadtest.rs_line_93_col_70.log | 168 - ...src__proto__batch__cmd.rs_line_8_col_9.log | 170 - ..._proto__batch__handle.rs_line_14_col_9.log | 44 - ..._proto__batch__handle.rs_line_27_col_9.log | 169 - ...to__batch__handle.rs_line_27_col_9_001.log | 169 - ..._proto__batch__handle.rs_line_33_col_9.log | 54 - ...to__batch__handle.rs_line_33_col_9_001.log | 42 - ...to__batch__handle.rs_line_33_col_9_002.log | 52 - ...to__batch__handle.rs_line_33_col_9_003.log | 52 - ..._proto__batch__handle.rs_line_44_col_9.log | 162 - ...c__proto__batch__mod.rs_line_163_col_9.log | 57 - ...c__proto__batch__mod.rs_line_169_col_9.log | 47 - ...c__proto__batch__mod.rs_line_179_col_9.log | 58 - ...c__proto__batch__mod.rs_line_185_col_9.log | 49 - ...c__proto__batch__mod.rs_line_192_col_9.log | 49 - ...c__proto__batch__mod.rs_line_199_col_9.log | 50 - ...c__proto__batch__mod.rs_line_208_col_9.log | 62 - ..._proto__batch__status.rs_line_31_col_9.log | 174 - ..._proto__batch__status.rs_line_90_col_9.log | 35 - ...to__batch__status.rs_line_90_col_9_001.log | 49 - ...to__batch__status.rs_line_90_col_9_002.log | 162 - ...to__batch__status.rs_line_90_col_9_003.log | 45 - ...to__batch__status.rs_line_90_col_9_004.log | 45 - ...c__proto__client__ent.rs_line_11_col_9.log | 169 - ...c__proto__client__ent.rs_line_17_col_9.log | 42 - ...roto__client__ent.rs_line_17_col_9_001.log | 169 - ...c__proto__client__ent.rs_line_23_col_9.log | 42 - ...roto__client__ent.rs_line_23_col_9_001.log | 169 - ...c__proto__client__ent.rs_line_29_col_9.log | 56 - ...roto__client__ent.rs_line_29_col_9_001.log | 42 - ...roto__client__ent.rs_line_29_col_9_002.log | 52 - ...roto__client__ent.rs_line_29_col_9_003.log | 52 - ...c__proto__client__ent.rs_line_38_col_9.log | 52 - ...roto__client__ent.rs_line_38_col_9_001.log | 56 - ...roto__client__ent.rs_line_38_col_9_002.log | 169 - ...roto__client__ent.rs_line_38_col_9_003.log | 52 - ...roto__client__ent.rs_line_38_col_9_004.log | 42 - ...c__proto__client__ent.rs_line_43_col_9.log | 168 - ...c__proto__client__ent.rs_line_49_col_9.log | 168 - ...c__proto__client__ent.rs_line_53_col_9.log | 176 - ...roto__client__ent.rs_line_53_col_9_001.log | 176 - ...__proto__client__mod.rs_line_159_col_9.log | 42 - ...__proto__client__mod.rs_line_164_col_9.log | 169 - ...__proto__client__mod.rs_line_174_col_9.log | 144 - ...__proto__client__mod.rs_line_196_col_9.log | 56 - ...oto__client__mod.rs_line_196_col_9_001.log | 94 - ...oto__client__mod.rs_line_196_col_9_002.log | 78 - ...oto__client__mod.rs_line_196_col_9_003.log | 56 - ...oto__client__mod.rs_line_196_col_9_004.log | 74 - ...oto__client__mod.rs_line_196_col_9_005.log | 53 - ...oto__client__mod.rs_line_196_col_9_006.log | 78 - ...oto__client__mod.rs_line_196_col_9_007.log | 53 - ...oto__client__mod.rs_line_196_col_9_008.log | 78 - ...oto__client__mod.rs_line_196_col_9_009.log | 73 - ...oto__client__mod.rs_line_196_col_9_010.log | 78 - ...oto__client__mod.rs_line_196_col_9_011.log | 70 - ...oto__client__mod.rs_line_196_col_9_012.log | 61 - ...__proto__client__mod.rs_line_218_col_9.log | 53 - ...oto__client__mod.rs_line_218_col_9_001.log | 71 - ...oto__client__mod.rs_line_218_col_9_002.log | 75 - ...oto__client__mod.rs_line_218_col_9_003.log | 75 - ...oto__client__mod.rs_line_218_col_9_004.log | 58 - ...oto__client__mod.rs_line_218_col_9_005.log | 50 - ...oto__client__mod.rs_line_218_col_9_006.log | 70 - ...oto__client__mod.rs_line_218_col_9_007.log | 75 - ...oto__client__mod.rs_line_218_col_9_008.log | 67 - ...oto__client__mod.rs_line_218_col_9_009.log | 75 - ...oto__client__mod.rs_line_218_col_9_010.log | 53 - ...oto__client__mod.rs_line_218_col_9_011.log | 91 - ...oto__client__mod.rs_line_218_col_9_012.log | 50 - ...__proto__client__mod.rs_line_229_col_9.log | 183 - ...__proto__client__mod.rs_line_23_col_12.log | 226 - ...c__proto__client__mod.rs_line_23_col_5.log | 175 - ...__proto__client__mod.rs_line_278_col_9.log | 55 - ...oto__client__mod.rs_line_278_col_9_001.log | 55 - ...oto__client__mod.rs_line_278_col_9_002.log | 42 - ...oto__client__mod.rs_line_278_col_9_003.log | 49 - ...__proto__client__mod.rs_line_286_col_9.log | 64 - ...oto__client__mod.rs_line_286_col_9_001.log | 148 - ...__proto__client__mod.rs_line_293_col_9.log | 62 - ...__proto__client__mod.rs_line_326_col_9.log | 120 - ...__proto__client__mod.rs_line_348_col_9.log | 179 - ...oto__client__mod.rs_line_348_col_9_001.log | 179 - ...oto__client__mod.rs_line_348_col_9_002.log | 179 - ...oto__client__mod.rs_line_348_col_9_003.log | 179 - ...oto__client__mod.rs_line_348_col_9_004.log | 179 - ...oto__client__mod.rs_line_348_col_9_005.log | 179 - ...oto__client__mod.rs_line_348_col_9_006.log | 179 - ...oto__client__mod.rs_line_348_col_9_007.log | 179 - ...oto__client__mod.rs_line_348_col_9_008.log | 179 - ...oto__client__mod.rs_line_348_col_9_009.log | 179 - ...oto__client__mod.rs_line_348_col_9_010.log | 179 - ...oto__client__mod.rs_line_348_col_9_011.log | 179 - ..._proto__client__mod.rs_line_359_col_24.log | 168 - ...to__client__mod.rs_line_359_col_24_001.log | 168 - ...__proto__client__mod.rs_line_366_col_9.log | 172 - ...__proto__client__mod.rs_line_378_col_9.log | 123 - ...__proto__client__mod.rs_line_389_col_9.log | 123 - ...__proto__client__mod.rs_line_402_col_9.log | 168 - ...__proto__client__mod.rs_line_409_col_9.log | 139 - ...oto__client__mod.rs_line_409_col_9_001.log | 40 - .../log/src__proto__mod.rs_line_39_col_9.log | 42 - .../log/src__proto__mod.rs_line_50_col_9.log | 36 - ...__proto__single__cmd.rs_line_109_col_9.log | 47 - ...__proto__single__cmd.rs_line_113_col_9.log | 168 - ...__proto__single__cmd.rs_line_123_col_9.log | 55 - ...__proto__single__cmd.rs_line_144_col_9.log | 138 - ...__proto__single__cmd.rs_line_163_col_9.log | 150 - ...__proto__single__cmd.rs_line_174_col_9.log | 47 - ...__proto__single__cmd.rs_line_215_col_9.log | 120 - ...__proto__single__cmd.rs_line_237_col_9.log | 61 - ...__proto__single__cmd.rs_line_243_col_9.log | 41 - ...__proto__single__cmd.rs_line_250_col_9.log | 123 - ...__proto__single__cmd.rs_line_263_col_9.log | 47 - ...__proto__single__cmd.rs_line_270_col_9.log | 171 - ...__proto__single__cmd.rs_line_298_col_9.log | 125 - ...c__proto__single__cmd.rs_line_33_col_5.log | 153 - ...c__proto__single__cmd.rs_line_48_col_9.log | 168 - ...oto__single__ent__cmd.rs_line_15_col_9.log | 174 - ...oto__single__ent__mod.rs_line_25_col_9.log | 62 - ...to__single__ent__mod.rs_line_46_col_36.log | 168 - ...single__ent__mod.rs_line_46_col_36_001.log | 51 - ...oto__single__ent__mod.rs_line_46_col_9.log | 59 - ...oto__single__ent__mod.rs_line_60_col_9.log | 59 - ...oto__single__ent__mod.rs_line_69_col_9.log | 59 - ...oto__single__ent__mod.rs_line_79_col_9.log | 59 - ...ingle__ent__progress.rs_line_102_col_9.log | 177 - ...ingle__ent__progress.rs_line_146_col_9.log | 49 - ...ingle__ent__progress.rs_line_154_col_9.log | 40 - ...single__ent__progress.rs_line_44_col_9.log | 47 - ...single__ent__progress.rs_line_52_col_9.log | 46 - ...single__ent__progress.rs_line_59_col_9.log | 48 - ...o__single__ent__utils.rs_line_13_col_5.log | 57 - ...ingle__ent__utils.rs_line_13_col_5_001.log | 89 - ...ingle__ent__utils.rs_line_13_col_5_002.log | 95 - ...ingle__ent__utils.rs_line_13_col_5_003.log | 89 - ...ingle__ent__utils.rs_line_13_col_5_004.log | 164 - ...rc__proto__single__id.rs_line_43_col_9.log | 96 - ...rc__proto__single__id.rs_line_64_col_9.log | 168 - ...rc__proto__single__id.rs_line_84_col_9.log | 162 - ...__proto__single__mod.rs_line_171_col_9.log | 58 - ...__proto__single__mod.rs_line_181_col_9.log | 59 - ...__proto__single__mod.rs_line_194_col_9.log | 63 - ...__proto__single__mod.rs_line_231_col_9.log | 57 - ...__proto__single__mod.rs_line_239_col_9.log | 60 - ...__proto__single__mod.rs_line_245_col_9.log | 44 - ...__proto__single__mod.rs_line_250_col_9.log | 139 - ...oto__single__mod.rs_line_250_col_9_001.log | 139 - ...__proto__single__mod.rs_line_255_col_9.log | 119 - ...oto__single__mod.rs_line_255_col_9_001.log | 119 - ...__proto__single__mod.rs_line_260_col_9.log | 47 - ...oto__single__mod.rs_line_260_col_9_001.log | 168 - ...__proto__single__mod.rs_line_267_col_5.log | 156 - ...__proto__single__mod.rs_line_278_col_5.log | 150 - ..._proto__single__resp.rs_line_110_col_5.log | 146 - ...proto__single__resp.rs_line_112_col_14.log | 225 - ..._proto__single__resp.rs_line_138_col_5.log | 135 - ...proto__single__resp.rs_line_148_col_29.log | 96 - ...o__single__resp.rs_line_148_col_29_001.log | 89 - ...proto__single__resp.rs_line_160_col_29.log | 91 - ...o__single__resp.rs_line_160_col_29_001.log | 91 - ...proto__single__resp.rs_line_172_col_29.log | 91 - ...o__single__resp.rs_line_172_col_29_001.log | 94 - ...proto__single__resp.rs_line_190_col_63.log | 137 - ...o__single__resp.rs_line_190_col_63_001.log | 130 - ...proto__single__resp.rs_line_194_col_49.log | 168 - ...o__single__resp.rs_line_194_col_49_001.log | 168 - ...proto__single__resp.rs_line_206_col_21.log | 121 - ..._proto__single__resp.rs_line_239_col_9.log | 41 - ..._proto__single__resp.rs_line_245_col_9.log | 41 - ..._proto__single__resp.rs_line_251_col_9.log | 41 - ...__proto__single__resp.rs_line_37_col_5.log | 71 - ...oto__single__resp.rs_line_37_col_5_001.log | 144 - ..._proto__single__resp.rs_line_39_col_41.log | 101 - ..._proto__single__resp.rs_line_47_col_39.log | 102 - ...__proto__single__resp.rs_line_69_col_5.log | 181 - ...c__proto__single__resp.rs_line_8_col_5.log | 61 - ...__proto__single__resp.rs_line_98_col_5.log | 53 - ..._proto__single__utils.rs_line_15_col_5.log | 96 - ...to__single__utils.rs_line_15_col_5_001.log | 91 - ..._proto__single__utils.rs_line_19_col_5.log | 168 - ...to__single__utils.rs_line_19_col_5_001.log | 168 - ...__proto__single__utils.rs_line_7_col_5.log | 107 - ...oto__single__utils.rs_line_7_col_5_001.log | 112 - .../src__proto__utils.rs_line_11_col_5.log | 91 - ...src__proto__utils.rs_line_11_col_5_001.log | 91 - .../src__proto__utils.rs_line_15_col_5.log | 53 - .../src__proto__utils.rs_line_16_col_21.log | 94 - .../src__proto__utils.rs_line_23_col_33.log | 168 - .../src__proto__utils.rs_line_31_col_5.log | 41 - .../log/src__proto__utils.rs_line_5_col_5.log | 89 - .../src__proto__utils.rs_line_5_col_5_001.log | 89 - .../log/src__tls.rs_line_116_col_9.log | 48 - .../log/src__tls.rs_line_130_col_9.log | 41 - .../log/src__tls.rs_line_136_col_9.log | 41 - .../log/src__tls.rs_line_146_col_9.log | 48 - .../log/src__tls.rs_line_146_col_9_001.log | 48 - .../log/src__tls.rs_line_146_col_9_002.log | 48 - .../log/src__tls.rs_line_146_col_9_003.log | 48 - .../log/src__tls.rs_line_156_col_9.log | 48 - .../log/src__tls.rs_line_156_col_9_001.log | 48 - .../log/src__tls.rs_line_156_col_9_002.log | 48 - .../log/src__tls.rs_line_156_col_9_003.log | 48 - .../log/src__tls.rs_line_156_col_9_004.log | 48 - .../log/src__tls.rs_line_156_col_9_005.log | 48 - .../log/src__tls.rs_line_156_col_9_006.log | 48 - .../log/src__tls.rs_line_163_col_9.log | 48 - .../log/src__tls.rs_line_163_col_9_001.log | 48 - .../log/src__tls.rs_line_163_col_9_002.log | 48 - .../log/src__tls.rs_line_163_col_9_003.log | 48 - .../log/src__tls.rs_line_170_col_9.log | 42 - .../log/src__tls.rs_line_170_col_9_001.log | 42 - .../log/src__tls.rs_line_170_col_9_002.log | 42 - .../log/src__tls.rs_line_170_col_9_003.log | 42 - .../log/src__tls.rs_line_52_col_9.log | 45 - .../log/src__tls.rs_line_63_col_9.log | 47 - .../log/src__tls.rs_line_83_col_9.log | 45 - ...src__worker__builder.rs_line_113_col_9.log | 40 - .../src__worker__builder.rs_line_37_col_9.log | 113 - .../src__worker__builder.rs_line_45_col_9.log | 141 - .../src__worker__builder.rs_line_53_col_9.log | 113 - .../src__worker__builder.rs_line_61_col_9.log | 293 - .../src__worker__builder.rs_line_76_col_9.log | 140 - .../src__worker__builder.rs_line_89_col_9.log | 140 - .../src__worker__builder.rs_line_99_col_9.log | 45 - .../src__worker__health.rs_line_20_col_9.log | 145 - ...c__worker__health.rs_line_20_col_9_001.log | 145 - .../src__worker__health.rs_line_28_col_23.log | 126 - .../src__worker__health.rs_line_29_col_17.log | 95 - .../src__worker__health.rs_line_31_col_63.log | 95 - .../src__worker__health.rs_line_41_col_41.log | 126 - ...__worker__health.rs_line_41_col_41_001.log | 126 - .../src__worker__mod.rs_line_148_col_9.log | 168 - .../src__worker__mod.rs_line_170_col_9.log | 129 - .../src__worker__mod.rs_line_178_col_9.log | 168 - .../src__worker__mod.rs_line_182_col_9.log | 140 - .../src__worker__mod.rs_line_186_col_9.log | 202 - .../src__worker__mod.rs_line_228_col_9.log | 108 - ...src__worker__mod.rs_line_228_col_9_001.log | 146 - .../src__worker__mod.rs_line_232_col_25.log | 95 - ...rc__worker__mod.rs_line_232_col_25_001.log | 112 - .../src__worker__mod.rs_line_249_col_9.log | 171 - ...src__worker__mod.rs_line_249_col_9_001.log | 171 - .../src__worker__mod.rs_line_285_col_9.log | 46 - .../src__worker__mod.rs_line_302_col_9.log | 62 - ...src__worker__mod.rs_line_302_col_9_001.log | 74 - ...src__worker__mod.rs_line_302_col_9_002.log | 58 - ...src__worker__mod.rs_line_302_col_9_003.log | 74 - .../src__worker__mod.rs_line_305_col_57.log | 133 - .../src__worker__mod.rs_line_328_col_9.log | 273 - ...src__worker__mod.rs_line_328_col_9_001.log | 272 - .../src__worker__mod.rs_line_358_col_24.log | 95 - .../src__worker__runner.rs_line_63_col_9.log | 168 - .../src__worker__runner.rs_line_76_col_9.log | 168 - .../src__worker__runner.rs_line_91_col_9.log | 121 - .../src__worker__state.rs_line_15_col_9.log | 228 - ...rc__worker__state.rs_line_15_col_9_001.log | 168 - .../src__worker__state.rs_line_19_col_9.log | 95 - ...rc__worker__state.rs_line_19_col_9_001.log | 134 - .../src__worker__state.rs_line_23_col_9.log | 168 - .../src__worker__state.rs_line_32_col_9.log | 44 - .../src__worker__state.rs_line_38_col_9.log | 168 - .../src__worker__state.rs_line_48_col_9.log | 95 - .../src__worker__state.rs_line_52_col_9.log | 171 - .../src__worker__state.rs_line_59_col_9.log | 171 - .../src__worker__state.rs_line_66_col_9.log | 122 - mutants.out.old/missed.txt | 70 - mutants.out.old/mutants.json | 8312 -------- mutants.out.old/outcomes.json | 16306 --------------- mutants.out.old/timeout.txt | 9 - mutants.out.old/unviable.txt | 132 - mutants.out/caught.txt | 131 - mutants.out/debug.log | 1865 -- mutants.out/lock.json | 6 - mutants.out/log/baseline.log | 230 - .../src__bin__loadtest.rs_line_109_col_36.log | 142 - ...__bin__loadtest.rs_line_109_col_36_001.log | 142 - .../src__bin__loadtest.rs_line_109_col_52.log | 142 - ...__bin__loadtest.rs_line_109_col_52_001.log | 142 - .../src__bin__loadtest.rs_line_110_col_38.log | 142 - ...__bin__loadtest.rs_line_110_col_38_001.log | 141 - .../src__bin__loadtest.rs_line_15_col_5.log | 237 - .../src__bin__loadtest.rs_line_78_col_24.log | 141 - ...c__bin__loadtest.rs_line_78_col_24_001.log | 142 - .../src__bin__loadtest.rs_line_78_col_28.log | 141 - .../src__bin__loadtest.rs_line_87_col_70.log | 142 - .../src__bin__loadtest.rs_line_93_col_70.log | 142 - ...src__proto__batch__cmd.rs_line_8_col_9.log | 144 - ..._proto__batch__handle.rs_line_14_col_9.log | 50 - ..._proto__batch__handle.rs_line_27_col_9.log | 143 - ...to__batch__handle.rs_line_27_col_9_001.log | 143 - ..._proto__batch__handle.rs_line_33_col_9.log | 59 - ...to__batch__handle.rs_line_33_col_9_001.log | 57 - ...to__batch__handle.rs_line_33_col_9_002.log | 47 - ...to__batch__handle.rs_line_33_col_9_003.log | 58 - ..._proto__batch__handle.rs_line_44_col_9.log | 136 - ...c__proto__batch__mod.rs_line_163_col_9.log | 63 - ...c__proto__batch__mod.rs_line_169_col_9.log | 53 - ...c__proto__batch__mod.rs_line_179_col_9.log | 63 - ...c__proto__batch__mod.rs_line_185_col_9.log | 55 - ...c__proto__batch__mod.rs_line_192_col_9.log | 55 - ...c__proto__batch__mod.rs_line_199_col_9.log | 56 - ...c__proto__batch__mod.rs_line_208_col_9.log | 67 - ..._proto__batch__status.rs_line_31_col_9.log | 148 - ..._proto__batch__status.rs_line_90_col_9.log | 54 - ...to__batch__status.rs_line_90_col_9_001.log | 51 - ...to__batch__status.rs_line_90_col_9_002.log | 51 - ...to__batch__status.rs_line_90_col_9_003.log | 136 - ...to__batch__status.rs_line_90_col_9_004.log | 40 - ...c__proto__client__ent.rs_line_11_col_9.log | 143 - ...c__proto__client__ent.rs_line_17_col_9.log | 48 - ...roto__client__ent.rs_line_17_col_9_001.log | 143 - ...c__proto__client__ent.rs_line_23_col_9.log | 48 - ...roto__client__ent.rs_line_23_col_9_001.log | 143 - ...c__proto__client__ent.rs_line_29_col_9.log | 58 - ...roto__client__ent.rs_line_29_col_9_001.log | 62 - ...roto__client__ent.rs_line_29_col_9_002.log | 47 - ...roto__client__ent.rs_line_29_col_9_003.log | 57 - ...c__proto__client__ent.rs_line_38_col_9.log | 48 - ...roto__client__ent.rs_line_38_col_9_001.log | 143 - ...roto__client__ent.rs_line_38_col_9_002.log | 58 - ...roto__client__ent.rs_line_38_col_9_003.log | 58 - ...roto__client__ent.rs_line_38_col_9_004.log | 62 - ...c__proto__client__ent.rs_line_43_col_9.log | 142 - ...c__proto__client__ent.rs_line_49_col_9.log | 141 - ...c__proto__client__ent.rs_line_53_col_9.log | 150 - ...roto__client__ent.rs_line_53_col_9_001.log | 150 - ...__proto__client__mod.rs_line_159_col_9.log | 42 - ...__proto__client__mod.rs_line_164_col_9.log | 143 - ...__proto__client__mod.rs_line_174_col_9.log | 145 - ...__proto__client__mod.rs_line_196_col_9.log | 78 - ...oto__client__mod.rs_line_196_col_9_001.log | 56 - ...oto__client__mod.rs_line_196_col_9_002.log | 53 - ...oto__client__mod.rs_line_196_col_9_003.log | 78 - ...oto__client__mod.rs_line_196_col_9_004.log | 94 - ...oto__client__mod.rs_line_196_col_9_005.log | 61 - ...oto__client__mod.rs_line_196_col_9_006.log | 78 - ...oto__client__mod.rs_line_196_col_9_007.log | 73 - ...oto__client__mod.rs_line_196_col_9_008.log | 53 - ...oto__client__mod.rs_line_196_col_9_009.log | 78 - ...oto__client__mod.rs_line_196_col_9_010.log | 74 - ...oto__client__mod.rs_line_196_col_9_011.log | 70 - ...oto__client__mod.rs_line_196_col_9_012.log | 56 - ...__proto__client__mod.rs_line_218_col_9.log | 91 - ...oto__client__mod.rs_line_218_col_9_001.log | 67 - ...oto__client__mod.rs_line_218_col_9_002.log | 75 - ...oto__client__mod.rs_line_218_col_9_003.log | 53 - ...oto__client__mod.rs_line_218_col_9_004.log | 50 - ...oto__client__mod.rs_line_218_col_9_005.log | 58 - ...oto__client__mod.rs_line_218_col_9_006.log | 50 - ...oto__client__mod.rs_line_218_col_9_007.log | 75 - ...oto__client__mod.rs_line_218_col_9_008.log | 75 - ...oto__client__mod.rs_line_218_col_9_009.log | 75 - ...oto__client__mod.rs_line_218_col_9_010.log | 70 - ...oto__client__mod.rs_line_218_col_9_011.log | 71 - ...oto__client__mod.rs_line_218_col_9_012.log | 53 - ...__proto__client__mod.rs_line_229_col_9.log | 184 - ...__proto__client__mod.rs_line_23_col_12.log | 226 - ...c__proto__client__mod.rs_line_23_col_5.log | 149 - ...__proto__client__mod.rs_line_278_col_9.log | 55 - ...oto__client__mod.rs_line_278_col_9_001.log | 55 - ...oto__client__mod.rs_line_278_col_9_002.log | 49 - ...oto__client__mod.rs_line_278_col_9_003.log | 42 - ...__proto__client__mod.rs_line_286_col_9.log | 64 - ...oto__client__mod.rs_line_286_col_9_001.log | 149 - ...__proto__client__mod.rs_line_293_col_9.log | 62 - ...__proto__client__mod.rs_line_326_col_9.log | 121 - ...__proto__client__mod.rs_line_348_col_9.log | 153 - ...oto__client__mod.rs_line_348_col_9_001.log | 153 - ...oto__client__mod.rs_line_348_col_9_002.log | 153 - ...oto__client__mod.rs_line_348_col_9_003.log | 153 - ...oto__client__mod.rs_line_348_col_9_004.log | 153 - ...oto__client__mod.rs_line_348_col_9_005.log | 153 - ...oto__client__mod.rs_line_348_col_9_006.log | 153 - ...oto__client__mod.rs_line_348_col_9_007.log | 153 - ...oto__client__mod.rs_line_348_col_9_008.log | 153 - ...oto__client__mod.rs_line_348_col_9_009.log | 153 - ...oto__client__mod.rs_line_348_col_9_010.log | 153 - ...oto__client__mod.rs_line_348_col_9_011.log | 153 - ..._proto__client__mod.rs_line_359_col_24.log | 142 - ...to__client__mod.rs_line_359_col_24_001.log | 142 - ...__proto__client__mod.rs_line_366_col_9.log | 146 - ...__proto__client__mod.rs_line_378_col_9.log | 124 - ...__proto__client__mod.rs_line_389_col_9.log | 124 - ...__proto__client__mod.rs_line_402_col_9.log | 142 - ...__proto__client__mod.rs_line_409_col_9.log | 140 - ...oto__client__mod.rs_line_409_col_9_001.log | 40 - .../log/src__proto__mod.rs_line_39_col_9.log | 42 - .../log/src__proto__mod.rs_line_50_col_9.log | 36 - ...__proto__single__cmd.rs_line_109_col_9.log | 47 - ...__proto__single__cmd.rs_line_113_col_9.log | 142 - ...__proto__single__cmd.rs_line_123_col_9.log | 55 - ...__proto__single__cmd.rs_line_144_col_9.log | 139 - ...__proto__single__cmd.rs_line_163_col_9.log | 151 - ...__proto__single__cmd.rs_line_174_col_9.log | 47 - ...__proto__single__cmd.rs_line_215_col_9.log | 121 - ...__proto__single__cmd.rs_line_237_col_9.log | 61 - ...__proto__single__cmd.rs_line_243_col_9.log | 41 - ...__proto__single__cmd.rs_line_250_col_9.log | 124 - ...__proto__single__cmd.rs_line_263_col_9.log | 47 - ...__proto__single__cmd.rs_line_270_col_9.log | 145 - ...__proto__single__cmd.rs_line_298_col_9.log | 126 - ...c__proto__single__cmd.rs_line_33_col_5.log | 154 - ...c__proto__single__cmd.rs_line_48_col_9.log | 142 - ...oto__single__ent__cmd.rs_line_15_col_9.log | 147 - ...oto__single__ent__mod.rs_line_25_col_9.log | 68 - ...to__single__ent__mod.rs_line_46_col_36.log | 142 - ...single__ent__mod.rs_line_46_col_36_001.log | 57 - ...oto__single__ent__mod.rs_line_46_col_9.log | 64 - ...oto__single__ent__mod.rs_line_60_col_9.log | 65 - ...oto__single__ent__mod.rs_line_69_col_9.log | 64 - ...oto__single__ent__mod.rs_line_79_col_9.log | 65 - ...ingle__ent__progress.rs_line_102_col_9.log | 151 - ...ingle__ent__progress.rs_line_146_col_9.log | 54 - ...ingle__ent__progress.rs_line_154_col_9.log | 46 - ...single__ent__progress.rs_line_44_col_9.log | 53 - ...single__ent__progress.rs_line_52_col_9.log | 52 - ...single__ent__progress.rs_line_59_col_9.log | 53 - ...o__single__ent__utils.rs_line_13_col_5.log | 94 - ...ingle__ent__utils.rs_line_13_col_5_001.log | 63 - ...ingle__ent__utils.rs_line_13_col_5_002.log | 101 - ...ingle__ent__utils.rs_line_13_col_5_003.log | 95 - ...ingle__ent__utils.rs_line_13_col_5_004.log | 138 - ...rc__proto__single__id.rs_line_43_col_9.log | 97 - ...rc__proto__single__id.rs_line_64_col_9.log | 142 - ...rc__proto__single__id.rs_line_84_col_9.log | 136 - ...__proto__single__mod.rs_line_171_col_9.log | 58 - ...__proto__single__mod.rs_line_181_col_9.log | 59 - ...__proto__single__mod.rs_line_194_col_9.log | 63 - ...__proto__single__mod.rs_line_231_col_9.log | 57 - ...__proto__single__mod.rs_line_239_col_9.log | 60 - ...__proto__single__mod.rs_line_245_col_9.log | 44 - ...__proto__single__mod.rs_line_250_col_9.log | 140 - ...oto__single__mod.rs_line_250_col_9_001.log | 140 - ...__proto__single__mod.rs_line_255_col_9.log | 120 - ...oto__single__mod.rs_line_255_col_9_001.log | 120 - ...__proto__single__mod.rs_line_260_col_9.log | 47 - ...oto__single__mod.rs_line_260_col_9_001.log | 142 - ...__proto__single__mod.rs_line_267_col_5.log | 157 - ...__proto__single__mod.rs_line_278_col_5.log | 151 - ..._proto__single__resp.rs_line_110_col_5.log | 147 - ...proto__single__resp.rs_line_112_col_14.log | 226 - ..._proto__single__resp.rs_line_138_col_5.log | 135 - ...proto__single__resp.rs_line_148_col_29.log | 97 - ...o__single__resp.rs_line_148_col_29_001.log | 91 - ...proto__single__resp.rs_line_160_col_29.log | 92 - ...o__single__resp.rs_line_160_col_29_001.log | 92 - ...proto__single__resp.rs_line_172_col_29.log | 95 - ...o__single__resp.rs_line_172_col_29_001.log | 92 - ...proto__single__resp.rs_line_190_col_63.log | 138 - ...o__single__resp.rs_line_190_col_63_001.log | 131 - ...proto__single__resp.rs_line_194_col_49.log | 142 - ...o__single__resp.rs_line_194_col_49_001.log | 142 - ...proto__single__resp.rs_line_206_col_21.log | 122 - ..._proto__single__resp.rs_line_239_col_9.log | 41 - ..._proto__single__resp.rs_line_245_col_9.log | 41 - ..._proto__single__resp.rs_line_251_col_9.log | 41 - ...__proto__single__resp.rs_line_37_col_5.log | 71 - ...oto__single__resp.rs_line_37_col_5_001.log | 145 - ..._proto__single__resp.rs_line_39_col_41.log | 103 - ..._proto__single__resp.rs_line_47_col_39.log | 103 - ...__proto__single__resp.rs_line_69_col_5.log | 155 - ...c__proto__single__resp.rs_line_8_col_5.log | 61 - ...__proto__single__resp.rs_line_98_col_5.log | 53 - ..._proto__single__utils.rs_line_15_col_5.log | 97 - ...to__single__utils.rs_line_15_col_5_001.log | 92 - ..._proto__single__utils.rs_line_19_col_5.log | 142 - ...to__single__utils.rs_line_19_col_5_001.log | 142 - ...__proto__single__utils.rs_line_7_col_5.log | 113 - ...oto__single__utils.rs_line_7_col_5_001.log | 108 - .../src__proto__utils.rs_line_11_col_5.log | 92 - ...src__proto__utils.rs_line_11_col_5_001.log | 92 - .../src__proto__utils.rs_line_15_col_5.log | 53 - .../src__proto__utils.rs_line_16_col_21.log | 95 - .../src__proto__utils.rs_line_23_col_33.log | 142 - .../src__proto__utils.rs_line_31_col_5.log | 41 - .../log/src__proto__utils.rs_line_5_col_5.log | 90 - .../src__proto__utils.rs_line_5_col_5_001.log | 90 - .../log/src__tls.rs_line_116_col_9.log | 53 - .../log/src__tls.rs_line_130_col_9.log | 47 - .../log/src__tls.rs_line_136_col_9.log | 46 - .../log/src__tls.rs_line_146_col_9.log | 53 - .../log/src__tls.rs_line_146_col_9_001.log | 54 - .../log/src__tls.rs_line_146_col_9_002.log | 54 - .../log/src__tls.rs_line_146_col_9_003.log | 54 - .../log/src__tls.rs_line_156_col_9.log | 53 - .../log/src__tls.rs_line_156_col_9_001.log | 53 - .../log/src__tls.rs_line_156_col_9_002.log | 54 - .../log/src__tls.rs_line_156_col_9_003.log | 54 - .../log/src__tls.rs_line_156_col_9_004.log | 53 - .../log/src__tls.rs_line_156_col_9_005.log | 54 - .../log/src__tls.rs_line_156_col_9_006.log | 54 - .../log/src__tls.rs_line_163_col_9.log | 54 - .../log/src__tls.rs_line_163_col_9_001.log | 54 - .../log/src__tls.rs_line_163_col_9_002.log | 53 - .../log/src__tls.rs_line_163_col_9_003.log | 54 - .../log/src__tls.rs_line_170_col_9.log | 48 - .../log/src__tls.rs_line_170_col_9_001.log | 47 - .../log/src__tls.rs_line_170_col_9_002.log | 48 - .../log/src__tls.rs_line_170_col_9_003.log | 48 - mutants.out/log/src__tls.rs_line_52_col_9.log | 51 - mutants.out/log/src__tls.rs_line_63_col_9.log | 53 - mutants.out/log/src__tls.rs_line_83_col_9.log | 51 - ...src__worker__builder.rs_line_113_col_9.log | 40 - .../src__worker__builder.rs_line_37_col_9.log | 114 - .../src__worker__builder.rs_line_45_col_9.log | 142 - .../src__worker__builder.rs_line_53_col_9.log | 114 - .../src__worker__builder.rs_line_61_col_9.log | 294 - .../src__worker__builder.rs_line_76_col_9.log | 141 - .../src__worker__builder.rs_line_89_col_9.log | 141 - .../src__worker__builder.rs_line_99_col_9.log | 45 - .../src__worker__health.rs_line_20_col_9.log | 146 - ...c__worker__health.rs_line_20_col_9_001.log | 146 - .../src__worker__health.rs_line_28_col_23.log | 127 - .../src__worker__health.rs_line_29_col_17.log | 96 - .../src__worker__health.rs_line_31_col_63.log | 96 - .../src__worker__health.rs_line_41_col_41.log | 127 - ...__worker__health.rs_line_41_col_41_001.log | 127 - .../src__worker__mod.rs_line_148_col_9.log | 142 - .../src__worker__mod.rs_line_170_col_9.log | 130 - .../src__worker__mod.rs_line_178_col_9.log | 142 - .../src__worker__mod.rs_line_182_col_9.log | 141 - .../src__worker__mod.rs_line_186_col_9.log | 176 - .../src__worker__mod.rs_line_228_col_9.log | 147 - ...src__worker__mod.rs_line_228_col_9_001.log | 109 - .../src__worker__mod.rs_line_232_col_25.log | 113 - ...rc__worker__mod.rs_line_232_col_25_001.log | 96 - .../src__worker__mod.rs_line_249_col_9.log | 172 - ...src__worker__mod.rs_line_249_col_9_001.log | 172 - .../src__worker__mod.rs_line_285_col_9.log | 46 - .../src__worker__mod.rs_line_302_col_9.log | 62 - ...src__worker__mod.rs_line_302_col_9_001.log | 74 - ...src__worker__mod.rs_line_302_col_9_002.log | 58 - ...src__worker__mod.rs_line_302_col_9_003.log | 74 - .../src__worker__mod.rs_line_305_col_57.log | 134 - .../src__worker__mod.rs_line_328_col_9.log | 273 - ...src__worker__mod.rs_line_328_col_9_001.log | 273 - .../src__worker__mod.rs_line_358_col_24.log | 96 - .../src__worker__runner.rs_line_63_col_9.log | 142 - .../src__worker__runner.rs_line_76_col_9.log | 142 - .../src__worker__runner.rs_line_91_col_9.log | 122 - .../src__worker__state.rs_line_15_col_9.log | 142 - ...rc__worker__state.rs_line_15_col_9_001.log | 96 - .../src__worker__state.rs_line_19_col_9.log | 96 - ...rc__worker__state.rs_line_19_col_9_001.log | 135 - .../src__worker__state.rs_line_23_col_9.log | 142 - .../src__worker__state.rs_line_32_col_9.log | 44 - .../src__worker__state.rs_line_38_col_9.log | 142 - .../src__worker__state.rs_line_48_col_9.log | 96 - .../src__worker__state.rs_line_52_col_9.log | 145 - .../src__worker__state.rs_line_59_col_9.log | 145 - .../src__worker__state.rs_line_66_col_9.log | 123 - mutants.out/missed.txt | 70 - mutants.out/mutants.json | 8312 -------- mutants.out/outcomes.json | 17242 ---------------- mutants.out/timeout.txt | 10 - mutants.out/unviable.txt | 66 - 573 files changed, 1 insertion(+), 111762 deletions(-) delete mode 100644 mutants.out.old/caught.txt delete mode 100644 mutants.out.old/debug.log delete mode 100644 mutants.out.old/lock.json delete mode 100644 mutants.out.old/log/baseline.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_109_col_36.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_109_col_36_001.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_109_col_52.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_109_col_52_001.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_110_col_38.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_110_col_38_001.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_15_col_5.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_78_col_24.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_78_col_24_001.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_78_col_28.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_87_col_70.log delete mode 100644 mutants.out.old/log/src__bin__loadtest.rs_line_93_col_70.log delete mode 100644 mutants.out.old/log/src__proto__batch__cmd.rs_line_8_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__handle.rs_line_14_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__handle.rs_line_27_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__handle.rs_line_27_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_002.log delete mode 100644 mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_003.log delete mode 100644 mutants.out.old/log/src__proto__batch__handle.rs_line_44_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__mod.rs_line_163_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__mod.rs_line_169_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__mod.rs_line_179_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__mod.rs_line_185_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__mod.rs_line_192_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__mod.rs_line_199_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__mod.rs_line_208_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__status.rs_line_31_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9.log delete mode 100644 mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_002.log delete mode 100644 mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_003.log delete mode 100644 mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_004.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_11_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_17_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_17_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_23_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_23_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_002.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_003.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_002.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_003.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_004.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_43_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_49_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_53_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__ent.rs_line_53_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_159_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_164_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_174_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_002.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_003.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_004.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_005.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_006.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_007.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_008.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_009.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_010.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_011.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_012.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_002.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_003.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_004.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_005.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_006.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_007.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_008.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_009.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_010.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_011.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_012.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_229_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_23_col_12.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_23_col_5.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_002.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_003.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_286_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_286_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_293_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_326_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_002.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_003.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_004.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_005.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_006.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_007.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_008.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_009.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_010.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_011.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_359_col_24.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_359_col_24_001.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_366_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_378_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_389_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_402_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_409_col_9.log delete mode 100644 mutants.out.old/log/src__proto__client__mod.rs_line_409_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__mod.rs_line_39_col_9.log delete mode 100644 mutants.out.old/log/src__proto__mod.rs_line_50_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_109_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_113_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_123_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_144_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_163_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_174_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_215_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_237_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_243_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_250_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_263_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_270_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_298_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_33_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__cmd.rs_line_48_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__cmd.rs_line_15_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__mod.rs_line_25_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_36.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__mod.rs_line_60_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__mod.rs_line_69_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__mod.rs_line_79_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__progress.rs_line_102_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__progress.rs_line_146_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__progress.rs_line_154_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__progress.rs_line_44_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__progress.rs_line_52_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__progress.rs_line_59_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log delete mode 100644 mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log delete mode 100644 mutants.out.old/log/src__proto__single__id.rs_line_43_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__id.rs_line_64_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__id.rs_line_84_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_171_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_181_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_194_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_231_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_239_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_245_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_250_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_250_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_255_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_255_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_260_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_260_col_9_001.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_267_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__mod.rs_line_278_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_110_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_112_col_14.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_138_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_148_col_29.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_148_col_29_001.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_160_col_29.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_160_col_29_001.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_172_col_29.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_172_col_29_001.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_190_col_63.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_190_col_63_001.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_194_col_49.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_194_col_49_001.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_206_col_21.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_239_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_245_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_251_col_9.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_37_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_37_col_5_001.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_39_col_41.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_47_col_39.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_69_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_8_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__resp.rs_line_98_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__utils.rs_line_15_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__utils.rs_line_15_col_5_001.log delete mode 100644 mutants.out.old/log/src__proto__single__utils.rs_line_19_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__utils.rs_line_19_col_5_001.log delete mode 100644 mutants.out.old/log/src__proto__single__utils.rs_line_7_col_5.log delete mode 100644 mutants.out.old/log/src__proto__single__utils.rs_line_7_col_5_001.log delete mode 100644 mutants.out.old/log/src__proto__utils.rs_line_11_col_5.log delete mode 100644 mutants.out.old/log/src__proto__utils.rs_line_11_col_5_001.log delete mode 100644 mutants.out.old/log/src__proto__utils.rs_line_15_col_5.log delete mode 100644 mutants.out.old/log/src__proto__utils.rs_line_16_col_21.log delete mode 100644 mutants.out.old/log/src__proto__utils.rs_line_23_col_33.log delete mode 100644 mutants.out.old/log/src__proto__utils.rs_line_31_col_5.log delete mode 100644 mutants.out.old/log/src__proto__utils.rs_line_5_col_5.log delete mode 100644 mutants.out.old/log/src__proto__utils.rs_line_5_col_5_001.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_116_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_130_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_136_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_146_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_146_col_9_001.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_146_col_9_002.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_146_col_9_003.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_156_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_156_col_9_001.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_156_col_9_002.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_156_col_9_003.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_156_col_9_004.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_156_col_9_005.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_156_col_9_006.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_163_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_163_col_9_001.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_163_col_9_002.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_163_col_9_003.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_170_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_170_col_9_001.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_170_col_9_002.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_170_col_9_003.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_52_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_63_col_9.log delete mode 100644 mutants.out.old/log/src__tls.rs_line_83_col_9.log delete mode 100644 mutants.out.old/log/src__worker__builder.rs_line_113_col_9.log delete mode 100644 mutants.out.old/log/src__worker__builder.rs_line_37_col_9.log delete mode 100644 mutants.out.old/log/src__worker__builder.rs_line_45_col_9.log delete mode 100644 mutants.out.old/log/src__worker__builder.rs_line_53_col_9.log delete mode 100644 mutants.out.old/log/src__worker__builder.rs_line_61_col_9.log delete mode 100644 mutants.out.old/log/src__worker__builder.rs_line_76_col_9.log delete mode 100644 mutants.out.old/log/src__worker__builder.rs_line_89_col_9.log delete mode 100644 mutants.out.old/log/src__worker__builder.rs_line_99_col_9.log delete mode 100644 mutants.out.old/log/src__worker__health.rs_line_20_col_9.log delete mode 100644 mutants.out.old/log/src__worker__health.rs_line_20_col_9_001.log delete mode 100644 mutants.out.old/log/src__worker__health.rs_line_28_col_23.log delete mode 100644 mutants.out.old/log/src__worker__health.rs_line_29_col_17.log delete mode 100644 mutants.out.old/log/src__worker__health.rs_line_31_col_63.log delete mode 100644 mutants.out.old/log/src__worker__health.rs_line_41_col_41.log delete mode 100644 mutants.out.old/log/src__worker__health.rs_line_41_col_41_001.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_148_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_170_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_178_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_182_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_186_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_228_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_228_col_9_001.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_232_col_25.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_232_col_25_001.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_249_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_249_col_9_001.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_285_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_302_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_302_col_9_001.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_302_col_9_002.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_302_col_9_003.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_305_col_57.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_328_col_9.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_328_col_9_001.log delete mode 100644 mutants.out.old/log/src__worker__mod.rs_line_358_col_24.log delete mode 100644 mutants.out.old/log/src__worker__runner.rs_line_63_col_9.log delete mode 100644 mutants.out.old/log/src__worker__runner.rs_line_76_col_9.log delete mode 100644 mutants.out.old/log/src__worker__runner.rs_line_91_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_15_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_15_col_9_001.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_19_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_19_col_9_001.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_23_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_32_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_38_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_48_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_52_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_59_col_9.log delete mode 100644 mutants.out.old/log/src__worker__state.rs_line_66_col_9.log delete mode 100644 mutants.out.old/missed.txt delete mode 100644 mutants.out.old/mutants.json delete mode 100644 mutants.out.old/outcomes.json delete mode 100644 mutants.out.old/timeout.txt delete mode 100644 mutants.out.old/unviable.txt delete mode 100644 mutants.out/caught.txt delete mode 100644 mutants.out/debug.log delete mode 100644 mutants.out/lock.json delete mode 100644 mutants.out/log/baseline.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_109_col_36.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_109_col_36_001.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_109_col_52.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_109_col_52_001.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_110_col_38.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_110_col_38_001.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_15_col_5.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_78_col_24.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_78_col_24_001.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_78_col_28.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_87_col_70.log delete mode 100644 mutants.out/log/src__bin__loadtest.rs_line_93_col_70.log delete mode 100644 mutants.out/log/src__proto__batch__cmd.rs_line_8_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__handle.rs_line_14_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__handle.rs_line_27_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__handle.rs_line_27_col_9_001.log delete mode 100644 mutants.out/log/src__proto__batch__handle.rs_line_33_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_001.log delete mode 100644 mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_002.log delete mode 100644 mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_003.log delete mode 100644 mutants.out/log/src__proto__batch__handle.rs_line_44_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__mod.rs_line_163_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__mod.rs_line_169_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__mod.rs_line_179_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__mod.rs_line_185_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__mod.rs_line_192_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__mod.rs_line_199_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__mod.rs_line_208_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__status.rs_line_31_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__status.rs_line_90_col_9.log delete mode 100644 mutants.out/log/src__proto__batch__status.rs_line_90_col_9_001.log delete mode 100644 mutants.out/log/src__proto__batch__status.rs_line_90_col_9_002.log delete mode 100644 mutants.out/log/src__proto__batch__status.rs_line_90_col_9_003.log delete mode 100644 mutants.out/log/src__proto__batch__status.rs_line_90_col_9_004.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_11_col_9.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_17_col_9.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_17_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_23_col_9.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_23_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_29_col_9.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_29_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_29_col_9_002.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_29_col_9_003.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_38_col_9.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_38_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_38_col_9_002.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_38_col_9_003.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_38_col_9_004.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_43_col_9.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_49_col_9.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_53_col_9.log delete mode 100644 mutants.out/log/src__proto__client__ent.rs_line_53_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_159_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_164_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_174_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_002.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_003.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_004.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_005.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_006.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_007.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_008.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_009.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_010.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_011.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_196_col_9_012.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_002.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_003.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_004.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_005.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_006.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_007.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_008.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_009.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_010.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_011.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_218_col_9_012.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_229_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_23_col_12.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_23_col_5.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_278_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_278_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_278_col_9_002.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_278_col_9_003.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_286_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_286_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_293_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_326_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_001.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_002.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_003.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_004.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_005.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_006.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_007.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_008.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_009.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_010.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_348_col_9_011.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_359_col_24.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_359_col_24_001.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_366_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_378_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_389_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_402_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_409_col_9.log delete mode 100644 mutants.out/log/src__proto__client__mod.rs_line_409_col_9_001.log delete mode 100644 mutants.out/log/src__proto__mod.rs_line_39_col_9.log delete mode 100644 mutants.out/log/src__proto__mod.rs_line_50_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_109_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_113_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_123_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_144_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_163_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_174_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_215_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_237_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_243_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_250_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_263_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_270_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_298_col_9.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_33_col_5.log delete mode 100644 mutants.out/log/src__proto__single__cmd.rs_line_48_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__cmd.rs_line_15_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__mod.rs_line_25_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36.log delete mode 100644 mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log delete mode 100644 mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__mod.rs_line_60_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__mod.rs_line_69_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__mod.rs_line_79_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__progress.rs_line_102_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__progress.rs_line_146_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__progress.rs_line_154_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__progress.rs_line_44_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__progress.rs_line_52_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__progress.rs_line_59_col_9.log delete mode 100644 mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5.log delete mode 100644 mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log delete mode 100644 mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log delete mode 100644 mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log delete mode 100644 mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log delete mode 100644 mutants.out/log/src__proto__single__id.rs_line_43_col_9.log delete mode 100644 mutants.out/log/src__proto__single__id.rs_line_64_col_9.log delete mode 100644 mutants.out/log/src__proto__single__id.rs_line_84_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_171_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_181_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_194_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_231_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_239_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_245_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_250_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_250_col_9_001.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_255_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_255_col_9_001.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_260_col_9.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_260_col_9_001.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_267_col_5.log delete mode 100644 mutants.out/log/src__proto__single__mod.rs_line_278_col_5.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_110_col_5.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_112_col_14.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_138_col_5.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_148_col_29.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_148_col_29_001.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_160_col_29.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_160_col_29_001.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_172_col_29.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_172_col_29_001.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_190_col_63.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_190_col_63_001.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_194_col_49.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_194_col_49_001.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_206_col_21.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_239_col_9.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_245_col_9.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_251_col_9.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_37_col_5.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_37_col_5_001.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_39_col_41.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_47_col_39.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_69_col_5.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_8_col_5.log delete mode 100644 mutants.out/log/src__proto__single__resp.rs_line_98_col_5.log delete mode 100644 mutants.out/log/src__proto__single__utils.rs_line_15_col_5.log delete mode 100644 mutants.out/log/src__proto__single__utils.rs_line_15_col_5_001.log delete mode 100644 mutants.out/log/src__proto__single__utils.rs_line_19_col_5.log delete mode 100644 mutants.out/log/src__proto__single__utils.rs_line_19_col_5_001.log delete mode 100644 mutants.out/log/src__proto__single__utils.rs_line_7_col_5.log delete mode 100644 mutants.out/log/src__proto__single__utils.rs_line_7_col_5_001.log delete mode 100644 mutants.out/log/src__proto__utils.rs_line_11_col_5.log delete mode 100644 mutants.out/log/src__proto__utils.rs_line_11_col_5_001.log delete mode 100644 mutants.out/log/src__proto__utils.rs_line_15_col_5.log delete mode 100644 mutants.out/log/src__proto__utils.rs_line_16_col_21.log delete mode 100644 mutants.out/log/src__proto__utils.rs_line_23_col_33.log delete mode 100644 mutants.out/log/src__proto__utils.rs_line_31_col_5.log delete mode 100644 mutants.out/log/src__proto__utils.rs_line_5_col_5.log delete mode 100644 mutants.out/log/src__proto__utils.rs_line_5_col_5_001.log delete mode 100644 mutants.out/log/src__tls.rs_line_116_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_130_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_136_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_146_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_146_col_9_001.log delete mode 100644 mutants.out/log/src__tls.rs_line_146_col_9_002.log delete mode 100644 mutants.out/log/src__tls.rs_line_146_col_9_003.log delete mode 100644 mutants.out/log/src__tls.rs_line_156_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_156_col_9_001.log delete mode 100644 mutants.out/log/src__tls.rs_line_156_col_9_002.log delete mode 100644 mutants.out/log/src__tls.rs_line_156_col_9_003.log delete mode 100644 mutants.out/log/src__tls.rs_line_156_col_9_004.log delete mode 100644 mutants.out/log/src__tls.rs_line_156_col_9_005.log delete mode 100644 mutants.out/log/src__tls.rs_line_156_col_9_006.log delete mode 100644 mutants.out/log/src__tls.rs_line_163_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_163_col_9_001.log delete mode 100644 mutants.out/log/src__tls.rs_line_163_col_9_002.log delete mode 100644 mutants.out/log/src__tls.rs_line_163_col_9_003.log delete mode 100644 mutants.out/log/src__tls.rs_line_170_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_170_col_9_001.log delete mode 100644 mutants.out/log/src__tls.rs_line_170_col_9_002.log delete mode 100644 mutants.out/log/src__tls.rs_line_170_col_9_003.log delete mode 100644 mutants.out/log/src__tls.rs_line_52_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_63_col_9.log delete mode 100644 mutants.out/log/src__tls.rs_line_83_col_9.log delete mode 100644 mutants.out/log/src__worker__builder.rs_line_113_col_9.log delete mode 100644 mutants.out/log/src__worker__builder.rs_line_37_col_9.log delete mode 100644 mutants.out/log/src__worker__builder.rs_line_45_col_9.log delete mode 100644 mutants.out/log/src__worker__builder.rs_line_53_col_9.log delete mode 100644 mutants.out/log/src__worker__builder.rs_line_61_col_9.log delete mode 100644 mutants.out/log/src__worker__builder.rs_line_76_col_9.log delete mode 100644 mutants.out/log/src__worker__builder.rs_line_89_col_9.log delete mode 100644 mutants.out/log/src__worker__builder.rs_line_99_col_9.log delete mode 100644 mutants.out/log/src__worker__health.rs_line_20_col_9.log delete mode 100644 mutants.out/log/src__worker__health.rs_line_20_col_9_001.log delete mode 100644 mutants.out/log/src__worker__health.rs_line_28_col_23.log delete mode 100644 mutants.out/log/src__worker__health.rs_line_29_col_17.log delete mode 100644 mutants.out/log/src__worker__health.rs_line_31_col_63.log delete mode 100644 mutants.out/log/src__worker__health.rs_line_41_col_41.log delete mode 100644 mutants.out/log/src__worker__health.rs_line_41_col_41_001.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_148_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_170_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_178_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_182_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_186_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_228_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_228_col_9_001.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_232_col_25.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_232_col_25_001.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_249_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_249_col_9_001.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_285_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_302_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_302_col_9_001.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_302_col_9_002.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_302_col_9_003.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_305_col_57.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_328_col_9.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_328_col_9_001.log delete mode 100644 mutants.out/log/src__worker__mod.rs_line_358_col_24.log delete mode 100644 mutants.out/log/src__worker__runner.rs_line_63_col_9.log delete mode 100644 mutants.out/log/src__worker__runner.rs_line_76_col_9.log delete mode 100644 mutants.out/log/src__worker__runner.rs_line_91_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_15_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_15_col_9_001.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_19_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_19_col_9_001.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_23_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_32_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_38_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_48_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_52_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_59_col_9.log delete mode 100644 mutants.out/log/src__worker__state.rs_line_66_col_9.log delete mode 100644 mutants.out/missed.txt delete mode 100644 mutants.out/mutants.json delete mode 100644 mutants.out/outcomes.json delete mode 100644 mutants.out/timeout.txt delete mode 100644 mutants.out/unviable.txt diff --git a/.gitignore b/.gitignore index 0f735146..01cc43f3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ **/*.rs.bk perf.* .vscode +mutants.* \ No newline at end of file diff --git a/mutants.out.old/caught.txt b/mutants.out.old/caught.txt deleted file mode 100644 index 4c8425ef..00000000 --- a/mutants.out.old/caught.txt +++ /dev/null @@ -1,66 +0,0 @@ -src/proto/client/mod.rs:23:12: replace != with == in check_protocols_match -src/proto/single/mod.rs:255:9: replace Job::args -> &[serde_json::Value] with Vec::leak(vec![Default::default()]) -src/proto/utils.rs:5:5: replace get_env_url -> String with "xyzzy".into() -src/worker/builder.rs:53:9: replace WorkerBuilder::labels -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/utils.rs:7:5: replace gen_random_id -> String with "xyzzy".into() -src/proto/single/cmd.rs:298:9: replace >::issue -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:378:9: replace Client::queue_pause -> Result<(), Error> with Ok(()) -src/proto/single/mod.rs:255:9: replace Job::args -> &[serde_json::Value] with Vec::leak(Vec::new()) -src/worker/mod.rs:328:9: replace Worker::run -> Result with Ok(1) -src/proto/client/mod.rs:174:9: replace >::drop with () -src/proto/client/mod.rs:409:9: replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(None) -src/worker/mod.rs:182:9: replace Worker::report_success_to_server -> Result<(), Error> with Ok(()) -src/proto/utils.rs:11:5: replace host_from_url -> String with "xyzzy".into() -src/proto/single/cmd.rs:33:5: replace write_queues -> Result<(), Error> with Ok(()) -src/proto/single/cmd.rs:250:9: replace ::issue -> Result<(), Error> with Ok(()) -src/worker/mod.rs:228:9: replace Worker::force_fail_all_workers -> usize with 1 -src/proto/single/resp.rs:160:29: replace - with / in read -src/proto/single/mod.rs:250:9: replace Job::kind -> &str with "" -src/proto/single/resp.rs:172:29: replace - with / in read -src/worker/state.rs:66:9: replace WorkerStatesRegistry::reset with () -src/proto/client/mod.rs:389:9: replace Client::queue_resume -> Result<(), Error> with Ok(()) -src/worker/health.rs:41:41: replace < with > in Worker::listen_for_heartbeats -src/proto/single/mod.rs:267:5: replace write_command -> Result<(), Error> with Ok(()) -src/proto/single/resp.rs:160:29: replace - with + in read -src/worker/mod.rs:328:9: replace Worker::run -> Result with Ok(0) -src/proto/single/resp.rs:148:29: replace - with + in read -src/worker/builder.rs:37:9: replace WorkerBuilder::hostname -> &mut Self with Box::leak(Box::new(Default::default())) -src/worker/health.rs:41:41: replace < with == in Worker::listen_for_heartbeats -src/proto/single/resp.rs:148:29: replace - with / in read -src/worker/state.rs:15:9: replace WorkerState::take_last_result -> Option> with Some(Ok(Default::default())) -src/proto/single/resp.rs:47:39: replace == with != in read_json -src/proto/client/mod.rs:286:9: replace Client::fetch -> Result, Error> with Ok(None) -src/proto/single/resp.rs:110:5: replace read_ok -> Result<(), Error> with Ok(()) -src/worker/builder.rs:89:9: replace WorkerBuilder::register_runner -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/client/mod.rs:229:9: replace Client::init -> Result<(), Error> with Ok(()) -src/worker/health.rs:28:23: replace == with != in Worker::listen_for_heartbeats -src/worker/mod.rs:249:9: replace Worker::run_one -> Result with Ok(true) -src/proto/single/id.rs:43:9: replace JobId::random -> Self with Default::default() -src/worker/runner.rs:91:9: replace >::run -> Result<(), E> with Ok(()) -src/proto/single/resp.rs:112:14: replace == with != in read_ok -src/proto/single/utils.rs:7:5: replace gen_random_id -> String with String::new() -src/proto/utils.rs:16:21: replace != with == in url_parse -src/proto/utils.rs:11:5: replace host_from_url -> String with String::new() -src/proto/client/mod.rs:326:9: replace Client::enqueue -> Result<(), Error> with Ok(()) -src/proto/utils.rs:5:5: replace get_env_url -> String with String::new() -src/proto/single/resp.rs:190:63: replace - with / in read -src/proto/single/resp.rs:172:29: replace - with + in read -src/proto/single/mod.rs:278:5: replace write_command_and_await_ok -> Result<(), Error> with Ok(()) -src/worker/builder.rs:61:9: replace WorkerBuilder::workers -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/resp.rs:37:5: replace read_json -> Result, Error> with Ok(None) -src/worker/state.rs:19:9: replace WorkerState::take_cuurently_running -> Option with Some(Default::default()) -src/worker/mod.rs:232:25: replace += with -= in Worker::force_fail_all_workers -src/proto/single/cmd.rs:144:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/single/mod.rs:250:9: replace Job::kind -> &str with "xyzzy" -src/proto/single/cmd.rs:215:9: replace Hello::set_password with () -src/proto/single/resp.rs:190:63: replace - with + in read -src/worker/mod.rs:170:9: replace Worker::run_job -> Result<(), Failed> with Ok(()) -src/proto/single/resp.rs:206:21: replace == with != in read -src/proto/single/utils.rs:15:5: replace gen_random_jid -> String with String::new() -src/worker/builder.rs:45:9: replace WorkerBuilder::wid -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/resp.rs:39:41: replace == with != in read_json -src/worker/mod.rs:249:9: replace Worker::run_one -> Result with Ok(false) -src/worker/builder.rs:76:9: replace WorkerBuilder::register -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/cmd.rs:163:9: replace >::issue -> Result<(), Error> with Ok(()) -src/worker/mod.rs:305:57: replace == with != in Worker::spawn_worker -src/proto/single/utils.rs:15:5: replace gen_random_jid -> String with "xyzzy".into() diff --git a/mutants.out.old/debug.log b/mutants.out.old/debug.log deleted file mode 100644 index e4be5e03..00000000 --- a/mutants.out.old/debug.log +++ /dev/null @@ -1,1727 +0,0 @@ - 0.085528637s DEBUG cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:52: all_packages=[Package { name: "faktory", relative_manifest_path: "Cargo.toml" }] - 0.086039442s DEBUG globset: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/globset-0.4.14/src/lib.rs:448: glob converted to regex: Glob { glob: "**/perf.*", re: "(?-u)^(?:/?|.*/)perf\\.[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('p'), Literal('e'), Literal('r'), Literal('f'), Literal('.'), ZeroOrMore]) } - 0.086051450s DEBUG globset: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/globset-0.4.14/src/lib.rs:453: built glob set; 1 literals, 2 basenames, 0 extensions, 0 prefixes, 0 suffixes, 1 required extensions, 1 regexes - 0.086222255s DEBUG ignore::walk: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ignore-0.4.22/src/walk.rs:1799: ignoring /home/pavel/Public/faktory-rs/target: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("/home/pavel/Public/faktory-rs/.gitignore"), original: "/target/", actual: "target", is_whitelist: false, is_only_dir: true }))) - 0.087378923s DEBUG ignore::walk: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ignore-0.4.22/src/walk.rs:1799: ignoring /home/pavel/Public/faktory-rs/mutants.out: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("/home/pavel/Public/faktory-rs/.gitignore"), original: "mutants.out", actual: "**/mutants.out", is_whitelist: false, is_only_dir: false }))) - 0.087402133s DEBUG ignore::walk: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ignore-0.4.22/src/walk.rs:1799: ignoring /home/pavel/Public/faktory-rs/.vscode: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("/home/pavel/Public/faktory-rs/.gitignore"), original: ".vscode", actual: "**/.vscode", is_whitelist: false, is_only_dir: false }))) - 0.088056350s DEBUG cargo_mutants::copy_tree: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/copy_tree.rs:100: Copied source tree total_bytes=295247 total_files=58 - 0.088310312s DEBUG run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 6.157498543s DEBUG run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=6.069202394s - 6.157558657s DEBUG run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 20.176977561s DEBUG run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.019441824s - 20.177077323s DEBUG cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Success - 20.177095887s INFO cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:181: Auto-set test timeout to 1m 10s - 20.177102709s DEBUG cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:102: build_dirs=[BuildDir { path: "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp", temp_dir: Some(TempDir { path: "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp" }) }] - 20.177396054s TRACE cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:114: start thread thread_id=ThreadId(3) build_dir=BuildDir { path: "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp", temp_dir: Some(TempDir { path: "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp" }) } - 20.177556454s TRACE mutant{id=0}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(String::new(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 20.177636611s DEBUG mutant{id=0}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 21.783643237s DEBUG mutant{id=0}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.606010449s - 21.783757642s DEBUG mutant{id=0}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 35.806516745s DEBUG mutant{id=0}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.022794586s - 35.806697819s TRACE mutant{id=0}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(String::new(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 35.806921983s DEBUG mutant{id=0}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 35.807062344s TRACE mutant{id=1}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdate::set", return_type: "-> ProgressUpdate", span: Span(42, 5, 45, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(44, 9, 44, 62), package_name: "faktory" } - 35.807151908s DEBUG mutant{id=1}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 36.008571365s DEBUG mutant{id=1}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.427027ms - 36.008769611s TRACE mutant{id=1}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdate::set", return_type: "-> ProgressUpdate", span: Span(42, 5, 45, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(44, 9, 44, 62), package_name: "faktory" } - 36.008943213s DEBUG mutant{id=1}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 36.009210444s TRACE mutant{id=2}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::new(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 36.009323623s DEBUG mutant{id=2}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 36.311317594s DEBUG mutant{id=2}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.006164ms - 36.311489421s TRACE mutant{id=2}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::new(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 36.311994492s DEBUG mutant{id=2}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 36.312896377s TRACE mutant{id=3}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::new()))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 36.318853415s DEBUG mutant{id=3}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 36.571382415s DEBUG mutant{id=3}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.569439ms - 36.571432002s TRACE mutant{id=3}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::new()))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 36.571779904s DEBUG mutant{id=3}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 36.572298567s TRACE mutant{id=4}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new())", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 36.572524015s DEBUG mutant{id=4}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 36.874918385s DEBUG mutant{id=4}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.417758ms - 36.875023020s TRACE mutant{id=4}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new())", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 36.875576684s DEBUG mutant{id=4}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 36.876508375s TRACE mutant{id=5}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "check_protocols_match", return_type: "-> Result<(), Error>", span: Span(22, 1, 31, 2) }), replacement: "==", genre: BinaryOperator, span: Span(23, 12, 23, 14), package_name: "faktory" } - 36.883903169s DEBUG mutant{id=5}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 38.440209096s DEBUG mutant{id=5}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.556371386s - 38.440441319s DEBUG mutant{id=5}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 41.754367075s DEBUG mutant{id=5}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.313973271s - 41.754457992s TRACE mutant{id=5}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "check_protocols_match", return_type: "-> Result<(), Error>", span: Span(22, 1, 31, 2) }), replacement: "==", genre: BinaryOperator, span: Span(23, 12, 23, 14), package_name: "faktory" } - 41.754748011s DEBUG mutant{id=5}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 41.754890518s TRACE mutant{id=6}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::maybe_bid", return_type: "-> Result, Error>", span: Span(52, 5, 68, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(53, 9, 67, 10), package_name: "faktory" } - 41.755023166s DEBUG mutant{id=6}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 43.010445408s DEBUG mutant{id=6}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.255447637s - 43.010577708s DEBUG mutant{id=6}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 56.937184872s DEBUG mutant{id=6}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.926651323s - 56.937348299s TRACE mutant{id=6}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::maybe_bid", return_type: "-> Result, Error>", span: Span(52, 5, 68, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(53, 9, 67, 10), package_name: "faktory" } - 56.937657834s DEBUG mutant{id=6}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 56.937788182s TRACE mutant{id=7}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::args", return_type: "-> &[serde_json::Value]", span: Span(253, 5, 256, 6) }), replacement: "Vec::leak(vec![Default::default()])", genre: FnValue, span: Span(255, 9, 255, 19), package_name: "faktory" } - 56.937844804s DEBUG mutant{id=7}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 58.193069795s DEBUG mutant{id=7}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.255229492s - 58.193192136s DEBUG mutant{id=7}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 71.463151338s DEBUG mutant{id=7}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.269999394s - 71.463220043s TRACE mutant{id=7}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::args", return_type: "-> &[serde_json::Value]", span: Span(253, 5, 256, 6) }), replacement: "Vec::leak(vec![Default::default()])", genre: FnValue, span: Span(255, 9, 255, 19), package_name: "faktory" } - 71.463759957s DEBUG mutant{id=7}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 71.464003056s TRACE mutant{id=8}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "get_env_url", return_type: "-> String", span: Span(4, 1, 8, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(5, 5, 7, 73), package_name: "faktory" } - 71.464180991s DEBUG mutant{id=8}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 72.769692427s DEBUG mutant{id=8}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.305550117s - 72.769821592s DEBUG mutant{id=8}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 75.880652679s DEBUG mutant{id=8}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.110875447s - 75.880715519s TRACE mutant{id=8}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "get_env_url", return_type: "-> String", span: Span(4, 1, 8, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(5, 5, 7, 73), package_name: "faktory" } - 75.881113155s DEBUG mutant{id=8}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 75.881590730s TRACE mutant{id=9}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::description", return_type: "-> Self", span: Span(177, 5, 181, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(179, 9, 180, 13), package_name: "faktory" } - 75.881811198s DEBUG mutant{id=9}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 76.134175083s DEBUG mutant{id=9}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.393798ms - 76.134258048s TRACE mutant{id=9}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::description", return_type: "-> Self", span: Span(177, 5, 181, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(179, 9, 180, 13), package_name: "faktory" } - 76.134508223s DEBUG mutant{id=9}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 76.134859176s TRACE mutant{id=10}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 76.135018894s DEBUG mutant{id=10}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 77.640887112s DEBUG mutant{id=10}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.505883109s - 77.641143606s DEBUG mutant{id=10}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 91.562641990s DEBUG mutant{id=10}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.921552186s - 91.562709402s TRACE mutant{id=10}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 91.563302317s DEBUG mutant{id=10}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 91.563763566s TRACE mutant{id=11}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } - 91.564056011s DEBUG mutant{id=11}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 91.966938363s DEBUG mutant{id=11}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.91723ms - 91.967027452s TRACE mutant{id=11}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } - 91.967369334s DEBUG mutant{id=11}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 91.967524744s TRACE mutant{id=12}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::from(Default::default())))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 91.967627612s DEBUG mutant{id=12}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 92.169580246s DEBUG mutant{id=12}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.968053ms - 92.169631920s TRACE mutant{id=12}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::from(Default::default())))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 92.169822611s DEBUG mutant{id=12}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 92.170055588s TRACE mutant{id=13}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(138, 5, 232, 6), package_name: "faktory" } - 92.170159020s DEBUG mutant{id=13}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 92.421804856s DEBUG mutant{id=13}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.661168ms - 92.421861494s TRACE mutant{id=13}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(138, 5, 232, 6), package_name: "faktory" } - 92.422139296s DEBUG mutant{id=13}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 92.422472496s TRACE mutant{id=14}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::new())", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 92.422628321s DEBUG mutant{id=14}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 92.624270568s DEBUG mutant{id=14}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.663948ms - 92.624332291s TRACE mutant{id=14}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::new())", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 92.624898716s DEBUG mutant{id=14}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 92.625222016s TRACE mutant{id=15}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(46, 9, 46, 42), package_name: "faktory" } - 92.625443762s DEBUG mutant{id=15}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 92.877803927s DEBUG mutant{id=15}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.387411ms - 92.878000214s TRACE mutant{id=15}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(46, 9, 46, 42), package_name: "faktory" } - 92.878298839s DEBUG mutant{id=15}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 92.878408254s TRACE mutant{id=16}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::labels", return_type: "-> &mut Self", span: Span(49, 5, 55, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(53, 9, 54, 13), package_name: "faktory" } - 92.878480883s DEBUG mutant{id=16}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 94.484766973s DEBUG mutant{id=16}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.606299624s - 94.484990282s DEBUG mutant{id=16}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 107.711260609s DEBUG mutant{id=16}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.226324175s - 107.711327414s TRACE mutant{id=16}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::labels", return_type: "-> &mut Self", span: Span(49, 5, 55, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(53, 9, 54, 13), package_name: "faktory" } - 107.712064890s DEBUG mutant{id=16}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 107.712510804s TRACE mutant{id=17}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Progress::update_percent", return_type: "-> ProgressUpdate", span: Span(142, 5, 150, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(146, 9, 149, 21), package_name: "faktory" } - 107.712816369s DEBUG mutant{id=17}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 107.965762105s DEBUG mutant{id=17}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.994361ms - 107.965952257s TRACE mutant{id=17}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Progress::update_percent", return_type: "-> ProgressUpdate", span: Span(142, 5, 150, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(146, 9, 149, 21), package_name: "faktory" } - 107.966242868s DEBUG mutant{id=17}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 107.966320348s TRACE mutant{id=18}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_id", return_type: "-> String", span: Span(6, 1, 12, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(7, 5, 11, 19), package_name: "faktory" } - 107.966387194s DEBUG mutant{id=18}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 109.472017365s DEBUG mutant{id=18}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.505643006s - 109.472246860s DEBUG mutant{id=18}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 109.725223266s DEBUG mutant{id=18}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=253.023633ms - 109.725295997s TRACE mutant{id=18}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_id", return_type: "-> String", span: Span(6, 1, 12, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(7, 5, 11, 19), package_name: "faktory" } - 109.725601162s DEBUG mutant{id=18}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 109.725870735s TRACE mutant{id=19}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::issue", return_type: "-> Result<(), Error>", span: Span(297, 5, 305, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(298, 9, 304, 40), package_name: "faktory" } - 109.726001249s DEBUG mutant{id=19}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 111.081858998s DEBUG mutant{id=19}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.355874899s - 111.082085486s DEBUG mutant{id=19}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 124.346218240s DEBUG mutant{id=19}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.264177514s - 124.346328547s TRACE mutant{id=19}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::issue", return_type: "-> Result<(), Error>", span: Span(297, 5, 305, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(298, 9, 304, 40), package_name: "faktory" } - 124.346781528s DEBUG mutant{id=19}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 124.347495138s TRACE mutant{id=20}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::queue_pause", return_type: "-> Result<(), Error>", span: Span(373, 5, 382, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(378, 9, 381, 19), package_name: "faktory" } - 124.347909543s DEBUG mutant{id=20}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 125.854687754s DEBUG mutant{id=20}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.506807159s - 125.854905531s DEBUG mutant{id=20}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 139.131795645s DEBUG mutant{id=20}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.276932209s - 139.131968723s TRACE mutant{id=20}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::queue_pause", return_type: "-> Result<(), Error>", span: Span(373, 5, 382, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(378, 9, 381, 19), package_name: "faktory" } - 139.132845599s DEBUG mutant{id=20}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 139.133335304s TRACE mutant{id=21}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "<", genre: BinaryOperator, span: Span(87, 70, 87, 72), package_name: "faktory" } - 139.133652035s DEBUG mutant{id=21}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 140.590594194s DEBUG mutant{id=21}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.456987002s - 140.590742030s DEBUG mutant{id=21}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 154.467216285s DEBUG mutant{id=21}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.876527062s - 154.467296707s TRACE mutant{id=21}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "<", genre: BinaryOperator, span: Span(87, 70, 87, 72), package_name: "faktory" } - 154.467639832s DEBUG mutant{id=21}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 154.467735177s TRACE mutant{id=22}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::deref_mut", return_type: "-> &mut Self::Target", span: Span(135, 5, 137, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(136, 9, 136, 25), package_name: "faktory" } - 154.467784260s DEBUG mutant{id=22}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 154.669174480s DEBUG mutant{id=22}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.394152ms - 154.669307601s TRACE mutant{id=22}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::deref_mut", return_type: "-> &mut Self::Target", span: Span(135, 5, 137, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(136, 9, 136, 25), package_name: "faktory" } - 154.669913668s DEBUG mutant{id=22}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 154.670443848s TRACE mutant{id=23}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::args", return_type: "-> &[serde_json::Value]", span: Span(253, 5, 256, 6) }), replacement: "Vec::leak(Vec::new())", genre: FnValue, span: Span(255, 9, 255, 19), package_name: "faktory" } - 154.670661373s DEBUG mutant{id=23}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 155.926191189s DEBUG mutant{id=23}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.255559261s - 155.926270817s DEBUG mutant{id=23}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 169.201675203s DEBUG mutant{id=23}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.275427807s - 169.201756773s TRACE mutant{id=23}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::args", return_type: "-> &[serde_json::Value]", span: Span(253, 5, 256, 6) }), replacement: "Vec::leak(Vec::new())", genre: FnValue, span: Span(255, 9, 255, 19), package_name: "faktory" } - 169.202662904s DEBUG mutant{id=23}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 169.203382078s TRACE mutant{id=24}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_complete_callback", return_type: "-> Batch", span: Span(190, 5, 195, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(192, 9, 194, 10), package_name: "faktory" } - 169.203740031s DEBUG mutant{id=24}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 169.456290068s DEBUG mutant{id=24}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.590341ms - 169.456469644s TRACE mutant{id=24}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_complete_callback", return_type: "-> Batch", span: Span(190, 5, 195, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(192, 9, 194, 10), package_name: "faktory" } - 169.457407904s DEBUG mutant{id=24}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 169.457935499s TRACE mutant{id=25}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "-", genre: BinaryOperator, span: Span(46, 36, 46, 37), package_name: "faktory" } - 169.458279321s DEBUG mutant{id=25}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 170.614277179s DEBUG mutant{id=25}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.156048078s - 170.614426511s DEBUG mutant{id=25}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 184.640848516s DEBUG mutant{id=25}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.026474032s - 184.640963770s TRACE mutant{id=25}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "-", genre: BinaryOperator, span: Span(46, 36, 46, 37), package_name: "faktory" } - 184.641504599s DEBUG mutant{id=25}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 184.642110814s TRACE mutant{id=26}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "Ok(1)", genre: FnValue, span: Span(328, 9, 373, 10), package_name: "faktory" } - 184.642382580s DEBUG mutant{id=26}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 185.898056587s DEBUG mutant{id=26}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.255701007s - 185.898169478s DEBUG mutant{id=26}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 189.162108572s DEBUG mutant{id=26}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.2639707s - 189.162282593s TRACE mutant{id=26}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "Ok(1)", genre: FnValue, span: Span(328, 9, 373, 10), package_name: "faktory" } - 189.162921415s DEBUG mutant{id=26}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 189.163247677s TRACE mutant{id=27}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } - 189.163441861s DEBUG mutant{id=27}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 189.616488831s DEBUG mutant{id=27}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=453.073812ms - 189.616543297s TRACE mutant{id=27}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } - 189.617198523s DEBUG mutant{id=27}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 189.617398810s TRACE mutant{id=28}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::commit", return_type: "-> Result<(), Error>", span: Span(37, 5, 45, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(44, 9, 44, 44), package_name: "faktory" } - 189.617567954s DEBUG mutant{id=28}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 190.923584251s DEBUG mutant{id=28}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.30604388s - 190.923681376s DEBUG mutant{id=28}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 204.852686757s DEBUG mutant{id=28}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.929035609s - 204.852767353s TRACE mutant{id=28}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::commit", return_type: "-> Result<(), Error>", span: Span(37, 5, 45, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(44, 9, 44, 44), package_name: "faktory" } - 204.853178235s DEBUG mutant{id=28}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 204.853598102s TRACE mutant{id=29}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::drop", return_type: "", span: Span(173, 5, 181, 6) }), replacement: "()", genre: FnValue, span: Span(174, 9, 180, 12), package_name: "faktory" } - 204.853793430s DEBUG mutant{id=29}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 206.359997062s DEBUG mutant{id=29}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.506222061s - 206.360151675s DEBUG mutant{id=29}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 219.530637770s DEBUG mutant{id=29}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.170513447s - 219.530821599s TRACE mutant{id=29}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::drop", return_type: "", span: Span(173, 5, 181, 6) }), replacement: "()", genre: FnValue, span: Span(174, 9, 180, 12), package_name: "faktory" } - 219.532157916s DEBUG mutant{id=29}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 219.533032734s TRACE mutant{id=30}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::fetch", return_type: "-> Result, Error>", span: Span(282, 5, 290, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(286, 9, 289, 19), package_name: "faktory" } - 219.538848944s DEBUG mutant{id=30}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 219.841487803s DEBUG mutant{id=30}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.675127ms - 219.841566627s TRACE mutant{id=30}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::fetch", return_type: "-> Result, Error>", span: Span(282, 5, 290, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(286, 9, 289, 19), package_name: "faktory" } - 219.841933504s DEBUG mutant{id=30}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 219.842275970s TRACE mutant{id=31}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "check_protocols_match", return_type: "-> Result<(), Error>", span: Span(22, 1, 31, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(23, 5, 30, 11), package_name: "faktory" } - 219.842412550s DEBUG mutant{id=31}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 221.448369531s DEBUG mutant{id=31}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.605974463s - 221.448605976s DEBUG mutant{id=31}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 235.419465682s DEBUG mutant{id=31}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.970908599s - 235.419618261s TRACE mutant{id=31}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "check_protocols_match", return_type: "-> Result<(), Error>", span: Span(22, 1, 31, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(23, 5, 30, 11), package_name: "faktory" } - 235.420502891s DEBUG mutant{id=31}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 235.421240718s TRACE mutant{id=32}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::from(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 235.428006485s DEBUG mutant{id=32}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 235.730221962s DEBUG mutant{id=32}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.253692ms - 235.730290759s TRACE mutant{id=32}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::from(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 235.730622495s DEBUG mutant{id=32}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 235.730898970s TRACE mutant{id=33}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_json", return_type: "-> Result, Error>", span: Span(405, 5, 410, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(409, 9, 409, 52), package_name: "faktory" } - 235.736965734s DEBUG mutant{id=33}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 237.342640043s DEBUG mutant{id=33}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.605691668s - 237.342753963s DEBUG mutant{id=33}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 250.606692273s DEBUG mutant{id=33}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.263957882s - 250.606842223s TRACE mutant{id=33}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_json", return_type: "-> Result, Error>", span: Span(405, 5, 410, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(409, 9, 409, 52), package_name: "faktory" } - 250.607703643s DEBUG mutant{id=33}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 250.608218887s TRACE mutant{id=34}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::heartbeat", return_type: "-> Result", span: Span(292, 5, 315, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(293, 9, 314, 10), package_name: "faktory" } - 250.608444738s DEBUG mutant{id=34}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 250.911291124s DEBUG mutant{id=34}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.870616ms - 250.911439889s TRACE mutant{id=34}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::heartbeat", return_type: "-> Result", span: Span(292, 5, 315, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(293, 9, 314, 10), package_name: "faktory" } - 250.912211765s DEBUG mutant{id=34}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 250.912597949s TRACE mutant{id=35}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from(Ok(1))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } - 250.912795763s DEBUG mutant{id=35}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 251.365739449s DEBUG mutant{id=35}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.974866ms - 251.365801936s TRACE mutant{id=35}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from(Ok(1))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } - 251.366501226s DEBUG mutant{id=35}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 251.367110653s TRACE mutant{id=36}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(37, 5, 62, 33), package_name: "faktory" } - 251.367350514s DEBUG mutant{id=36}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 251.619627444s DEBUG mutant{id=36}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.305603ms - 251.619718714s TRACE mutant{id=36}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(37, 5, 62, 33), package_name: "faktory" } - 251.620208192s DEBUG mutant{id=36}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 251.620442388s TRACE mutant{id=37}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "*", genre: BinaryOperator, span: Span(46, 36, 46, 37), package_name: "faktory" } - 251.620559193s DEBUG mutant{id=37}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 251.822420391s DEBUG mutant{id=37}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.877863ms - 251.822564207s TRACE mutant{id=37}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "*", genre: BinaryOperator, span: Span(46, 36, 46, 37), package_name: "faktory" } - 251.822800543s DEBUG mutant{id=37}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 251.822909044s TRACE mutant{id=38}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } - 251.822962714s DEBUG mutant{id=38}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 252.275095814s DEBUG mutant{id=38}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.140579ms - 252.275160973s TRACE mutant{id=38}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } - 252.275883622s DEBUG mutant{id=38}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 252.276195252s TRACE mutant{id=39}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "+", genre: BinaryOperator, span: Span(109, 36, 109, 37), package_name: "faktory" } - 252.276363135s DEBUG mutant{id=39}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 253.832348654s DEBUG mutant{id=39}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.556011163s - 253.832563798s DEBUG mutant{id=39}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 267.756596726s DEBUG mutant{id=39}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.924077448s - 267.756670926s TRACE mutant{id=39}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "+", genre: BinaryOperator, span: Span(109, 36, 109, 37), package_name: "faktory" } - 267.757746160s DEBUG mutant{id=39}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 267.758614908s TRACE mutant{id=40}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 267.759201429s DEBUG mutant{id=40}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 269.315949479s DEBUG mutant{id=40}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.55689422s - 269.316095086s DEBUG mutant{id=40}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 283.294713445s DEBUG mutant{id=40}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.978668259s - 283.294757588s TRACE mutant{id=40}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 283.295385199s DEBUG mutant{id=40}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 283.295626221s TRACE mutant{id=41}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::on_queue", return_type: "-> Self", span: Span(234, 5, 241, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(239, 9, 240, 13), package_name: "faktory" } - 283.295745367s DEBUG mutant{id=41}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 283.547689710s DEBUG mutant{id=41}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.953897ms - 283.547742338s TRACE mutant{id=41}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::on_queue", return_type: "-> Self", span: Span(234, 5, 241, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(239, 9, 240, 13), package_name: "faktory" } - 283.548335580s DEBUG mutant{id=41}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 283.548756986s TRACE mutant{id=42}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_success_to_server", return_type: "-> Result<(), Error>", span: Span(181, 5, 183, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(182, 9, 182, 60), package_name: "faktory" } - 283.548930796s DEBUG mutant{id=42}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 285.054867606s DEBUG mutant{id=42}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.505955482s - 285.055043581s DEBUG mutant{id=42}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 298.280809233s DEBUG mutant{id=42}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.225846035s - 298.280994960s TRACE mutant{id=42}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_success_to_server", return_type: "-> Result<(), Error>", span: Span(181, 5, 183, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(182, 9, 182, 60), package_name: "faktory" } - 298.282227400s DEBUG mutant{id=42}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 298.282723909s TRACE mutant{id=43}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "-", genre: BinaryOperator, span: Span(109, 52, 109, 53), package_name: "faktory" } - 298.283566812s DEBUG mutant{id=43}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 299.740020363s DEBUG mutant{id=43}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.456849377s - 299.740097293s DEBUG mutant{id=43}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 313.664655328s DEBUG mutant{id=43}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.92458294s - 313.664763299s TRACE mutant{id=43}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "-", genre: BinaryOperator, span: Span(109, 52, 109, 53), package_name: "faktory" } - 313.665397863s DEBUG mutant{id=43}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 313.665590958s TRACE mutant{id=44}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::new(Default::default())))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } - 313.665763802s DEBUG mutant{id=44}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 313.917657000s DEBUG mutant{id=44}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.913315ms - 313.917734154s TRACE mutant{id=44}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::new(Default::default())))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } - 313.918923566s DEBUG mutant{id=44}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 313.919550727s TRACE mutant{id=45}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Fail::set_backtrace", return_type: "", span: Span(112, 5, 114, 6) }), replacement: "()", genre: FnValue, span: Span(113, 9, 113, 32), package_name: "faktory" } - 313.919872295s DEBUG mutant{id=45}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 315.176056244s DEBUG mutant{id=45}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.25622068s - 315.176192002s DEBUG mutant{id=45}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 329.093503361s DEBUG mutant{id=45}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.917336287s - 329.093576563s TRACE mutant{id=45}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Fail::set_backtrace", return_type: "", span: Span(112, 5, 114, 6) }), replacement: "()", genre: FnValue, span: Span(113, 9, 113, 32), package_name: "faktory" } - 329.093898097s DEBUG mutant{id=45}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 329.093985695s TRACE mutant{id=46}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "host_from_url", return_type: "-> String", span: Span(10, 1, 12, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(11, 5, 11, 74), package_name: "faktory" } - 329.094044934s DEBUG mutant{id=46}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 330.297651806s DEBUG mutant{id=46}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.203613968s - 330.297812735s DEBUG mutant{id=46}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 333.405198708s DEBUG mutant{id=46}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.107414305s - 333.405365814s TRACE mutant{id=46}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "host_from_url", return_type: "-> String", span: Span(10, 1, 12, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(11, 5, 11, 74), package_name: "faktory" } - 333.405798881s DEBUG mutant{id=46}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 333.405933002s TRACE mutant{id=47}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "0", genre: FnValue, span: Span(228, 9, 241, 16), package_name: "faktory" } - 333.405989345s DEBUG mutant{id=47}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 334.961103686s DEBUG mutant{id=47}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.555118724s - 334.961196089s DEBUG mutant{id=47}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 404.991406668s DEBUG mutant{id=47}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.030223723s - 404.991710573s DEBUG mutant{id=47}:run{phase=Test}:terminate_child{pid=80405}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 404.992237920s TRACE mutant{id=47}:run{phase=Test}:terminate_child{pid=80405}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 404.995628243s DEBUG mutant{id=47}:run{phase=Test}:terminate_child{pid=80405}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 404.995723326s DEBUG mutant{id=47}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.034559382s - 404.995828878s TRACE mutant{id=47}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "0", genre: FnValue, span: Span(228, 9, 241, 16), package_name: "faktory" } - 404.996957507s DEBUG mutant{id=47}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 404.997706524s TRACE mutant{id=48}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 404.998058308s DEBUG mutant{id=48}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 405.250906274s DEBUG mutant{id=48}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.880771ms - 405.250931262s TRACE mutant{id=48}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 405.251343104s DEBUG mutant{id=48}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 405.251631177s TRACE mutant{id=49}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "==", genre: BinaryOperator, span: Span(358, 24, 358, 26), package_name: "faktory" } - 405.251756998s DEBUG mutant{id=49}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 406.757126422s DEBUG mutant{id=49}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.505377677s - 406.757218201s DEBUG mutant{id=49}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 476.768234117s DEBUG mutant{id=49}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.011030675s - 476.768373233s DEBUG mutant{id=49}:run{phase=Test}:terminate_child{pid=82357}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 476.768507624s TRACE mutant{id=49}:run{phase=Test}:terminate_child{pid=82357}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 476.771860811s DEBUG mutant{id=49}:run{phase=Test}:terminate_child{pid=82357}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 476.771943135s DEBUG mutant{id=49}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.014758104s - 476.772043434s TRACE mutant{id=49}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "==", genre: BinaryOperator, span: Span(358, 24, 358, 26), package_name: "faktory" } - 476.772985473s DEBUG mutant{id=49}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 476.773289458s TRACE mutant{id=50}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_bid", return_type: "-> Result", span: Span(48, 5, 50, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(49, 9, 49, 51), package_name: "faktory" } - 476.773460564s DEBUG mutant{id=50}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 478.077545190s DEBUG mutant{id=50}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.304112157s - 478.077632758s DEBUG mutant{id=50}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 491.994324600s DEBUG mutant{id=50}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.916706047s - 491.994402356s TRACE mutant{id=50}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_bid", return_type: "-> Result", span: Span(48, 5, 50, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(49, 9, 49, 51), package_name: "faktory" } - 491.994656125s DEBUG mutant{id=50}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 491.994746245s TRACE mutant{id=51}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } - 491.994793609s DEBUG mutant{id=51}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 492.396414610s DEBUG mutant{id=51}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=401.624899ms - 492.396515850s TRACE mutant{id=51}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } - 492.397155111s DEBUG mutant{id=51}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 492.397417600s TRACE mutant{id=52}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_at", return_type: "-> &mut Self", span: Span(12, 5, 29, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(25, 9, 28, 10), package_name: "faktory" } - 492.397550457s DEBUG mutant{id=52}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 492.649629622s DEBUG mutant{id=52}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.100881ms - 492.649661417s TRACE mutant{id=52}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_at", return_type: "-> &mut Self", span: Span(12, 5, 29, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(25, 9, 28, 10), package_name: "faktory" } - 492.649969819s DEBUG mutant{id=52}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 492.650046194s TRACE mutant{id=53}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(83, 5, 85, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(84, 9, 84, 23), package_name: "faktory" } - 492.650094491s DEBUG mutant{id=53}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 493.853618219s DEBUG mutant{id=53}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.203533747s - 493.853668408s DEBUG mutant{id=53}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 507.771458000s DEBUG mutant{id=53}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.917803137s - 507.771605668s TRACE mutant{id=53}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(83, 5, 85, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(84, 9, 84, 23), package_name: "faktory" } - 507.772617897s DEBUG mutant{id=53}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 507.772934508s TRACE mutant{id=54}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::from_iter([Default::default()])))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 507.773158866s DEBUG mutant{id=54}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 508.025440468s DEBUG mutant{id=54}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.316645ms - 508.025488829s TRACE mutant{id=54}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::from_iter([Default::default()])))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 508.026281554s DEBUG mutant{id=54}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 508.026627542s TRACE mutant{id=55}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "write_queues", return_type: "-> Result<(), Error>", span: Span(26, 1, 39, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(33, 5, 38, 11), package_name: "faktory" } - 508.026784847s DEBUG mutant{id=55}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 509.332124981s DEBUG mutant{id=55}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.305360268s - 509.332257711s DEBUG mutant{id=55}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 522.549799586s DEBUG mutant{id=55}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.217585375s - 522.549985834s TRACE mutant{id=55}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "write_queues", return_type: "-> Result<(), Error>", span: Span(26, 1, 39, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(33, 5, 38, 11), package_name: "faktory" } - 522.551257428s DEBUG mutant{id=55}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 522.551855951s TRACE mutant{id=56}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(249, 5, 254, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(250, 9, 253, 40), package_name: "faktory" } - 522.552108721s DEBUG mutant{id=56}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 523.858078335s DEBUG mutant{id=56}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.306007403s - 523.858329031s DEBUG mutant{id=56}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 537.123552720s DEBUG mutant{id=56}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.265277641s - 537.123724680s TRACE mutant{id=56}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(249, 5, 254, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(250, 9, 253, 40), package_name: "faktory" } - 537.125181580s DEBUG mutant{id=56}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 537.125676181s TRACE mutant{id=57}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::connect", return_type: "-> Result", span: Span(38, 5, 57, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(52, 9, 56, 15), package_name: "faktory" } - 537.125968934s DEBUG mutant{id=57}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 537.378807511s DEBUG mutant{id=57}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.878479ms - 537.378895327s TRACE mutant{id=57}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::connect", return_type: "-> Result", span: Span(38, 5, 57, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(52, 9, 56, 15), package_name: "faktory" } - 537.379452910s DEBUG mutant{id=57}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 537.379681060s TRACE mutant{id=58}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "1", genre: FnValue, span: Span(228, 9, 241, 16), package_name: "faktory" } - 537.379781976s DEBUG mutant{id=58}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 538.985694944s DEBUG mutant{id=58}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.605924429s - 538.985754429s DEBUG mutant{id=58}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 552.196520768s DEBUG mutant{id=58}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.210783606s - 552.196640837s TRACE mutant{id=58}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "1", genre: FnValue, span: Span(228, 9, 241, 16), package_name: "faktory" } - 552.197462039s DEBUG mutant{id=58}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 552.197951761s TRACE mutant{id=59}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "bad", return_type: "-> error::Protocol", span: Span(7, 1, 30, 2) }), replacement: "Default::default()", genre: FnValue, span: Span(8, 5, 29, 6), package_name: "faktory" } - 552.198145157s DEBUG mutant{id=59}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 552.550505230s DEBUG mutant{id=59}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.383325ms - 552.550568321s TRACE mutant{id=59}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "bad", return_type: "-> error::Protocol", span: Span(7, 1, 30, 2) }), replacement: "Default::default()", genre: FnValue, span: Span(8, 5, 29, 6), package_name: "faktory" } - 552.551792224s DEBUG mutant{id=59}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 552.552668866s TRACE mutant{id=60}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "*=", genre: BinaryOperator, span: Span(232, 25, 232, 27), package_name: "faktory" } - 552.553049979s DEBUG mutant{id=60}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 554.259081415s DEBUG mutant{id=60}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.706066524s - 554.259159022s DEBUG mutant{id=60}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 624.308561985s DEBUG mutant{id=60}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.049414499s - 624.308687596s DEBUG mutant{id=60}:run{phase=Test}:terminate_child{pid=94718}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 624.308829686s TRACE mutant{id=60}:run{phase=Test}:terminate_child{pid=94718}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 624.312146226s DEBUG mutant{id=60}:run{phase=Test}:terminate_child{pid=94718}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 624.312243535s DEBUG mutant{id=60}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.053113426s - 624.312334264s TRACE mutant{id=60}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "*=", genre: BinaryOperator, span: Span(232, 25, 232, 27), package_name: "faktory" } - 624.313299096s DEBUG mutant{id=60}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 624.313564959s TRACE mutant{id=61}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::from_iter([Default::default()]))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } - 624.313729850s DEBUG mutant{id=61}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 624.616029666s DEBUG mutant{id=61}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.323976ms - 624.616217890s TRACE mutant{id=61}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::from_iter([Default::default()]))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } - 624.617235765s DEBUG mutant{id=61}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 624.617939064s TRACE mutant{id=62}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(160, 29, 160, 30), package_name: "faktory" } - 624.618222730s DEBUG mutant{id=62}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 626.074329137s DEBUG mutant{id=62}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.456136947s - 626.074486184s DEBUG mutant{id=62}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 629.286102638s DEBUG mutant{id=62}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.21167191s - 629.286156338s TRACE mutant{id=62}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(160, 29, 160, 30), package_name: "faktory" } - 629.286829556s DEBUG mutant{id=62}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 629.287184656s TRACE mutant{id=63}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::kind", return_type: "-> &str", span: Span(248, 5, 251, 6) }), replacement: "\"\"", genre: FnValue, span: Span(250, 9, 250, 19), package_name: "faktory" } - 629.287323301s DEBUG mutant{id=63}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 630.743164705s DEBUG mutant{id=63}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.455857344s - 630.743415077s DEBUG mutant{id=63}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 633.956242995s DEBUG mutant{id=63}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.212880256s - 633.956367718s TRACE mutant{id=63}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::kind", return_type: "-> &str", span: Span(248, 5, 251, 6) }), replacement: "\"\"", genre: FnValue, span: Span(250, 9, 250, 19), package_name: "faktory" } - 633.957424372s DEBUG mutant{id=63}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 633.957983018s TRACE mutant{id=64}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_json", return_type: "-> Result, Error>", span: Span(405, 5, 410, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(409, 9, 409, 52), package_name: "faktory" } - 633.958238649s DEBUG mutant{id=64}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 634.210460014s DEBUG mutant{id=64}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.247005ms - 634.210502771s TRACE mutant{id=64}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_json", return_type: "-> Result, Error>", span: Span(405, 5, 410, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(409, 9, 409, 52), package_name: "faktory" } - 634.211312156s DEBUG mutant{id=64}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 634.211483817s TRACE mutant{id=65}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::from_iter([Default::default()])))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } - 634.211640688s DEBUG mutant{id=65}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 634.413621040s DEBUG mutant{id=65}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=202.022825ms - 634.413703868s TRACE mutant{id=65}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::from_iter([Default::default()])))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } - 634.414279904s DEBUG mutant{id=65}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 634.414368336s TRACE mutant{id=66}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::from_iter([Default::default()]))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } - 634.414466767s DEBUG mutant{id=66}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 634.615944429s DEBUG mutant{id=66}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.486108ms - 634.615994243s TRACE mutant{id=66}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::from_iter([Default::default()]))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } - 634.616927205s DEBUG mutant{id=66}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 634.617482858s TRACE mutant{id=67}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(172, 29, 172, 30), package_name: "faktory" } - 634.617765573s DEBUG mutant{id=67}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 636.073734589s DEBUG mutant{id=67}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.455998598s - 636.073922254s DEBUG mutant{id=67}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 639.237439624s DEBUG mutant{id=67}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.163554157s - 639.237478124s TRACE mutant{id=67}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(172, 29, 172, 30), package_name: "faktory" } - 639.238150354s DEBUG mutant{id=67}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 639.238300433s TRACE mutant{id=68}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::reset", return_type: "", span: Span(65, 5, 69, 6) }), replacement: "()", genre: FnValue, span: Span(66, 9, 68, 34), package_name: "faktory" } - 639.238399530s DEBUG mutant{id=68}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 640.694993540s DEBUG mutant{id=68}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.456610448s - 640.695066955s DEBUG mutant{id=68}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 653.921388090s DEBUG mutant{id=68}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.22633335s - 653.921438687s TRACE mutant{id=68}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::reset", return_type: "", span: Span(65, 5, 69, 6) }), replacement: "()", genre: FnValue, span: Span(66, 9, 68, 34), package_name: "faktory" } - 653.922355520s DEBUG mutant{id=68}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 653.922558747s TRACE mutant{id=69}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 653.922707502s DEBUG mutant{id=69}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 655.177325207s DEBUG mutant{id=69}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.254641699s - 655.177444140s DEBUG mutant{id=69}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 669.153598423s DEBUG mutant{id=69}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.976172885s - 669.153777283s TRACE mutant{id=69}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 669.155428253s DEBUG mutant{id=69}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 669.156408179s TRACE mutant{id=70}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::from(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 669.156897218s DEBUG mutant{id=70}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 669.459685505s DEBUG mutant{id=70}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.832689ms - 669.459886462s TRACE mutant{id=70}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::from(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 669.460590549s DEBUG mutant{id=70}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 669.460773973s TRACE mutant{id=71}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } - 669.460882270s DEBUG mutant{id=71}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 669.863347653s DEBUG mutant{id=71}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.476386ms - 669.863516647s TRACE mutant{id=71}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } - 669.865057889s DEBUG mutant{id=71}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 669.865799285s TRACE mutant{id=72}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::queue_resume", return_type: "-> Result<(), Error>", span: Span(384, 5, 393, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(389, 9, 392, 19), package_name: "faktory" } - 669.866133848s DEBUG mutant{id=72}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 671.323107498s DEBUG mutant{id=72}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.457008175s - 671.323207119s DEBUG mutant{id=72}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 684.582453029s DEBUG mutant{id=72}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.259276455s - 684.582525800s TRACE mutant{id=72}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::queue_resume", return_type: "-> Result<(), Error>", span: Span(384, 5, 393, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(389, 9, 392, 19), package_name: "faktory" } - 684.583882541s DEBUG mutant{id=72}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 684.584182650s TRACE mutant{id=73}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: ">", genre: BinaryOperator, span: Span(41, 41, 41, 42), package_name: "faktory" } - 684.584371430s DEBUG mutant{id=73}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 686.040328094s DEBUG mutant{id=73}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.4559914s - 686.040494259s DEBUG mutant{id=73}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 689.503491548s DEBUG mutant{id=73}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.463026022s - 689.503573026s TRACE mutant{id=73}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: ">", genre: BinaryOperator, span: Span(41, 41, 41, 42), package_name: "faktory" } - 689.504864364s DEBUG mutant{id=73}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 689.505603383s TRACE mutant{id=74}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::new(Default::default()))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 689.505865642s DEBUG mutant{id=74}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 689.808826891s DEBUG mutant{id=74}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.993099ms - 689.808892399s TRACE mutant{id=74}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::new(Default::default()))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 689.810094940s DEBUG mutant{id=74}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 689.810775199s TRACE mutant{id=75}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "write_command", return_type: "-> Result<(), Error>", span: Span(263, 1, 269, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(267, 5, 268, 25), package_name: "faktory" } - 689.811048499s DEBUG mutant{id=75}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 691.317655202s DEBUG mutant{id=75}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.506640781s - 691.317717995s DEBUG mutant{id=75}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 704.541150130s DEBUG mutant{id=75}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.223450394s - 704.541344302s TRACE mutant{id=75}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "write_command", return_type: "-> Result<(), Error>", span: Span(263, 1, 269, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(267, 5, 268, 25), package_name: "faktory" } - 704.543181296s DEBUG mutant{id=75}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 704.543591685s TRACE mutant{id=76}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::new()))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 704.543843835s DEBUG mutant{id=76}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 704.846613874s DEBUG mutant{id=76}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.804398ms - 704.846756476s TRACE mutant{id=76}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::new()))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 704.848009129s DEBUG mutant{id=76}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 704.848707043s TRACE mutant{id=77}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 704.848977653s DEBUG mutant{id=77}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 705.151564639s DEBUG mutant{id=77}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.615411ms - 705.151732916s TRACE mutant{id=77}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 705.153215116s DEBUG mutant{id=77}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 705.153926647s TRACE mutant{id=78}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_bid", return_type: "-> Result", span: Span(67, 1, 83, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(69, 5, 82, 6), package_name: "faktory" } - 705.154199353s DEBUG mutant{id=78}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 706.861643067s DEBUG mutant{id=78}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.707478559s - 706.861868317s DEBUG mutant{id=78}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 720.889160342s DEBUG mutant{id=78}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.027337938s - 720.889233143s TRACE mutant{id=78}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_bid", return_type: "-> Result", span: Span(67, 1, 83, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(69, 5, 82, 6), package_name: "faktory" } - 720.890790865s DEBUG mutant{id=78}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 720.891148670s TRACE mutant{id=79}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_cuurently_running", return_type: "-> Option", span: Span(18, 5, 20, 6) }), replacement: "None", genre: FnValue, span: Span(19, 9, 19, 32), package_name: "faktory" } - 720.891444742s DEBUG mutant{id=79}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 722.548085979s DEBUG mutant{id=79}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.656678576s - 722.548156998s DEBUG mutant{id=79}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 792.577295290s DEBUG mutant{id=79}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.02914767s - 792.577427253s DEBUG mutant{id=79}:run{phase=Test}:terminate_child{pid=112974}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 792.577570744s TRACE mutant{id=79}:run{phase=Test}:terminate_child{pid=112974}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 792.585110705s DEBUG mutant{id=79}:run{phase=Test}:terminate_child{pid=112974}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 792.585187449s DEBUG mutant{id=79}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.03705523s - 792.585276099s TRACE mutant{id=79}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_cuurently_running", return_type: "-> Option", span: Span(18, 5, 20, 6) }), replacement: "None", genre: FnValue, span: Span(19, 9, 19, 32), package_name: "faktory" } - 792.586462962s DEBUG mutant{id=79}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 792.586879655s TRACE mutant{id=80}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::fmt", return_type: "-> std::fmt::Result", span: Span(101, 5, 112, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(102, 9, 111, 27), package_name: "faktory" } - 792.587168675s DEBUG mutant{id=80}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 793.942342242s DEBUG mutant{id=80}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.355214284s - 793.942400879s DEBUG mutant{id=80}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 807.915844779s DEBUG mutant{id=80}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.973459901s - 807.915913157s TRACE mutant{id=80}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::fmt", return_type: "-> std::fmt::Result", span: Span(101, 5, 112, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(102, 9, 111, 27), package_name: "faktory" } - 807.917336744s DEBUG mutant{id=80}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 807.918135529s TRACE mutant{id=81}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(160, 29, 160, 30), package_name: "faktory" } - 807.918541364s DEBUG mutant{id=81}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 809.524936083s DEBUG mutant{id=81}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.606436539s - 809.525162856s DEBUG mutant{id=81}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 812.588602158s DEBUG mutant{id=81}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.063486349s - 812.588652220s TRACE mutant{id=81}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(160, 29, 160, 30), package_name: "faktory" } - 812.589710027s DEBUG mutant{id=81}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 812.590075878s TRACE mutant{id=82}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::from", return_type: "-> Self", span: Span(173, 5, 175, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(174, 9, 174, 25), package_name: "faktory" } - 812.590261906s DEBUG mutant{id=82}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 812.842470063s DEBUG mutant{id=82}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.228928ms - 812.842638253s TRACE mutant{id=82}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::from", return_type: "-> Self", span: Span(173, 5, 175, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(174, 9, 174, 25), package_name: "faktory" } - 812.844483426s DEBUG mutant{id=82}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 812.844817035s TRACE mutant{id=83}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "Ok(true)", genre: FnValue, span: Span(20, 9, 76, 10), package_name: "faktory" } - 812.845054375s DEBUG mutant{id=83}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 814.351507048s DEBUG mutant{id=83}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.506489431s - 814.351658209s DEBUG mutant{id=83}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 884.373216489s DEBUG mutant{id=83}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.02156995s - 884.373353171s DEBUG mutant{id=83}:run{phase=Test}:terminate_child{pid=118856}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 884.373482953s TRACE mutant{id=83}:run{phase=Test}:terminate_child{pid=118856}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 884.381155924s DEBUG mutant{id=83}:run{phase=Test}:terminate_child{pid=118856}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 884.381248293s DEBUG mutant{id=83}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.029620299s - 884.381276981s TRACE mutant{id=83}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "Ok(true)", genre: FnValue, span: Span(20, 9, 76, 10), package_name: "faktory" } - 884.382542835s DEBUG mutant{id=83}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 884.383193916s TRACE mutant{id=84}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_hi", return_type: "-> Result", span: Span(97, 1, 105, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(98, 5, 104, 38), package_name: "faktory" } - 884.383529426s DEBUG mutant{id=84}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 884.685958368s DEBUG mutant{id=84}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.456611ms - 884.686067238s TRACE mutant{id=84}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_hi", return_type: "-> Result", span: Span(97, 1, 105, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(98, 5, 104, 38), package_name: "faktory" } - 884.686779594s DEBUG mutant{id=84}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 884.687081928s TRACE mutant{id=85}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::builder", return_type: "-> JobBuilder", span: Span(227, 5, 232, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(231, 9, 231, 30), package_name: "faktory" } - 884.687254286s DEBUG mutant{id=85}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 884.939294615s DEBUG mutant{id=85}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.056116ms - 884.939376679s TRACE mutant{id=85}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::builder", return_type: "-> JobBuilder", span: Span(227, 5, 232, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(231, 9, 231, 30), package_name: "faktory" } - 884.939864853s DEBUG mutant{id=85}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 884.939956224s TRACE mutant{id=86}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::get_batch_status", return_type: "-> Result, Error>", span: Span(21, 5, 25, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(23, 9, 24, 50), package_name: "faktory" } - 884.940008940s DEBUG mutant{id=86}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 885.191655003s DEBUG mutant{id=86}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.655302ms - 885.191795725s TRACE mutant{id=86}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::get_batch_status", return_type: "-> Result, Error>", span: Span(21, 5, 25, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(23, 9, 24, 50), package_name: "faktory" } - 885.192977878s DEBUG mutant{id=86}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 885.193217863s TRACE mutant{id=87}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::from(Default::default()))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } - 885.193363332s DEBUG mutant{id=87}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 885.445645004s DEBUG mutant{id=87}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.31008ms - 885.445669416s TRACE mutant{id=87}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::from(Default::default()))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } - 885.446067910s DEBUG mutant{id=87}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 885.446239337s TRACE mutant{id=88}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "Ok(0)", genre: FnValue, span: Span(328, 9, 373, 10), package_name: "faktory" } - 885.446310696s DEBUG mutant{id=88}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 886.600297548s DEBUG mutant{id=88}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.153992914s - 886.600486993s DEBUG mutant{id=88}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 889.811187779s DEBUG mutant{id=88}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.210720442s - 889.811310698s TRACE mutant{id=88}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "Ok(0)", genre: FnValue, span: Span(328, 9, 373, 10), package_name: "faktory" } - 889.811735109s DEBUG mutant{id=88}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 889.811848955s TRACE mutant{id=89}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "/", genre: BinaryOperator, span: Span(78, 24, 78, 25), package_name: "faktory" } - 889.811906947s DEBUG mutant{id=89}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 891.116518011s DEBUG mutant{id=89}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.30461919s - 891.116682319s DEBUG mutant{id=89}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 905.140833361s DEBUG mutant{id=89}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.024181884s - 905.140896411s TRACE mutant{id=89}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "/", genre: BinaryOperator, span: Span(78, 24, 78, 25), package_name: "faktory" } - 905.142329431s DEBUG mutant{id=89}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 905.143139684s TRACE mutant{id=90}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(148, 29, 148, 30), package_name: "faktory" } - 905.143539630s DEBUG mutant{id=90}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 906.699891046s DEBUG mutant{id=90}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.556384703s - 906.700019677s DEBUG mutant{id=90}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 909.813584267s DEBUG mutant{id=90}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.113607722s - 909.813634581s TRACE mutant{id=90}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(148, 29, 148, 30), package_name: "faktory" } - 909.814949348s DEBUG mutant{id=90}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 909.815217997s TRACE mutant{id=91}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::hostname", return_type: "-> &mut Self", span: Span(33, 5, 39, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(37, 9, 38, 13), package_name: "faktory" } - 909.815367417s DEBUG mutant{id=91}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 911.371561774s DEBUG mutant{id=91}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.55621596s - 911.371757813s DEBUG mutant{id=91}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 924.593621289s DEBUG mutant{id=91}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.221901602s - 924.593699622s TRACE mutant{id=91}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::hostname", return_type: "-> &mut Self", span: Span(33, 5, 39, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(37, 9, 38, 13), package_name: "faktory" } - 924.595423404s DEBUG mutant{id=91}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 924.595718800s TRACE mutant{id=92}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "==", genre: BinaryOperator, span: Span(41, 41, 41, 42), package_name: "faktory" } - 924.595899421s DEBUG mutant{id=92}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 926.052251891s DEBUG mutant{id=92}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.45638563s - 926.052533383s DEBUG mutant{id=92}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 929.516852637s DEBUG mutant{id=92}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.464370109s - 929.516926206s TRACE mutant{id=92}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "==", genre: BinaryOperator, span: Span(41, 41, 41, 42), package_name: "faktory" } - 929.518755063s DEBUG mutant{id=92}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 929.519787968s TRACE mutant{id=93}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(148, 29, 148, 30), package_name: "faktory" } - 929.520239168s DEBUG mutant{id=93}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 930.924933464s DEBUG mutant{id=93}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.404722081s - 930.925061179s DEBUG mutant{id=93}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 934.035900682s DEBUG mutant{id=93}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.110885235s - 934.035953058s TRACE mutant{id=93}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(148, 29, 148, 30), package_name: "faktory" } - 934.036955822s DEBUG mutant{id=93}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 934.037321917s TRACE mutant{id=94}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Batch::builder", return_type: "-> BatchBuilder", span: Span(161, 5, 164, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(163, 9, 163, 28), package_name: "faktory" } - 934.037477622s DEBUG mutant{id=94}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 934.289486795s DEBUG mutant{id=94}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.029187ms - 934.289634641s TRACE mutant{id=94}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Batch::builder", return_type: "-> BatchBuilder", span: Span(161, 5, 164, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(163, 9, 163, 28), package_name: "faktory" } - 934.290724249s DEBUG mutant{id=94}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 934.291297396s TRACE mutant{id=95}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 934.291513081s DEBUG mutant{id=95}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 935.847816714s DEBUG mutant{id=95}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.556327236s - 935.847968162s DEBUG mutant{id=95}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 949.877129501s DEBUG mutant{id=95}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.029216179s - 949.877219739s TRACE mutant{id=95}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 949.878149398s DEBUG mutant{id=95}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 949.878302105s TRACE mutant{id=96}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_last_result", return_type: "-> Option>", span: Span(14, 5, 16, 6) }), replacement: "Some(Ok(Default::default()))", genre: FnValue, span: Span(15, 9, 15, 36), package_name: "faktory" } - 949.878435597s DEBUG mutant{id=96}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 951.384099365s DEBUG mutant{id=96}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.505679807s - 951.384348146s DEBUG mutant{id=96}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 954.598010044s DEBUG mutant{id=96}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.213713535s - 954.598255012s TRACE mutant{id=96}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_last_result", return_type: "-> Option>", span: Span(14, 5, 16, 6) }), replacement: "Some(Ok(Default::default()))", genre: FnValue, span: Span(15, 9, 15, 36), package_name: "faktory" } - 954.600036906s DEBUG mutant{id=96}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 954.600597083s TRACE mutant{id=97}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(47, 39, 47, 41), package_name: "faktory" } - 954.600858646s DEBUG mutant{id=97}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 956.106947915s DEBUG mutant{id=97}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.506114458s - 956.107181401s DEBUG mutant{id=97}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 959.320844643s DEBUG mutant{id=97}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.213704971s - 959.320944054s TRACE mutant{id=97}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(47, 39, 47, 41), package_name: "faktory" } - 959.322098147s DEBUG mutant{id=97}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 959.322550134s TRACE mutant{id=98}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::from(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 959.322771780s DEBUG mutant{id=98}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 959.625153159s DEBUG mutant{id=98}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.401284ms - 959.625362612s TRACE mutant{id=98}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::from(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 959.626003178s DEBUG mutant{id=98}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 959.626236569s TRACE mutant{id=99}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(194, 49, 194, 50), package_name: "faktory" } - 959.626344019s DEBUG mutant{id=99}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 961.032153235s DEBUG mutant{id=99}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.405817351s - 961.032403242s DEBUG mutant{id=99}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 974.959360903s DEBUG mutant{id=99}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.927010802s - 974.959432472s TRACE mutant{id=99}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(194, 49, 194, 50), package_name: "faktory" } - 974.961423555s DEBUG mutant{id=99}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 974.962336633s TRACE mutant{id=100}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::fetch", return_type: "-> Result, Error>", span: Span(282, 5, 290, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(286, 9, 289, 19), package_name: "faktory" } - 974.962746871s DEBUG mutant{id=100}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 976.569181753s DEBUG mutant{id=100}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.606472261s - 976.569341043s DEBUG mutant{id=100}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 989.779523890s DEBUG mutant{id=100}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.210194045s - 989.779604134s TRACE mutant{id=100}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::fetch", return_type: "-> Result, Error>", span: Span(282, 5, 290, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(286, 9, 289, 19), package_name: "faktory" } - 989.781709937s DEBUG mutant{id=100}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 989.782014872s TRACE mutant{id=101}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::get_progress", return_type: "-> Result, Error>", span: Span(15, 5, 19, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(17, 9, 18, 50), package_name: "faktory" } - 989.782257728s DEBUG mutant{id=101}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 990.085466874s DEBUG mutant{id=101}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=303.24784ms - 990.085541315s TRACE mutant{id=101}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::get_progress", return_type: "-> Result, Error>", span: Span(15, 5, 19, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(17, 9, 18, 50), package_name: "faktory" } - 990.087841931s DEBUG mutant{id=101}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 990.088448819s TRACE mutant{id=102}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::from(Default::default()))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 990.088713938s DEBUG mutant{id=102}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 990.340977586s DEBUG mutant{id=102}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.289878ms - 990.341049845s TRACE mutant{id=102}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::from(Default::default()))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 990.341829170s DEBUG mutant{id=102}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 990.342030064s TRACE mutant{id=103}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } - 990.342129890s DEBUG mutant{id=103}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 990.744554545s DEBUG mutant{id=103}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.442242ms - 990.744616875s TRACE mutant{id=103}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } - 990.745321567s DEBUG mutant{id=103}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 990.745585425s TRACE mutant{id=104}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::new(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 990.745688899s DEBUG mutant{id=104}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 990.997202802s DEBUG mutant{id=104}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.525885ms - 990.997280873s TRACE mutant{id=104}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::new(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 990.997802899s DEBUG mutant{id=104}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 990.997962687s TRACE mutant{id=105}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(47, 5, 49, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(48, 9, 48, 44), package_name: "faktory" } - 990.998035016s DEBUG mutant{id=105}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - 992.552799299s DEBUG mutant{id=105}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.554771922s - 992.553027067s DEBUG mutant{id=105}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1006.531937409s DEBUG mutant{id=105}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.978961008s -1006.532117039s TRACE mutant{id=105}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(47, 5, 49, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(48, 9, 48, 44), package_name: "faktory" } -1006.534583939s DEBUG mutant{id=105}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1006.535039477s TRACE mutant{id=106}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::connect", return_type: "-> Result, E>, Error>", span: Span(106, 5, 119, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(113, 9, 118, 74), package_name: "faktory" } -1006.535330600s DEBUG mutant{id=106}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1006.788016683s DEBUG mutant{id=106}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.721304ms -1006.788087714s TRACE mutant{id=106}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::connect", return_type: "-> Result, E>, Error>", span: Span(106, 5, 119, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(113, 9, 118, 74), package_name: "faktory" } -1006.790160355s DEBUG mutant{id=106}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1006.790488263s TRACE mutant{id=107}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::new(Default::default()))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } -1006.790744122s DEBUG mutant{id=107}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1007.043238938s DEBUG mutant{id=107}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.536138ms -1007.043334479s TRACE mutant{id=107}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::new(Default::default()))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } -1007.044480362s DEBUG mutant{id=107}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1007.045051566s TRACE mutant{id=108}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "/", genre: BinaryOperator, span: Span(359, 24, 359, 25), package_name: "faktory" } -1007.045321019s DEBUG mutant{id=108}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1008.299493413s DEBUG mutant{id=108}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.254195436s -1008.299565041s DEBUG mutant{id=108}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1022.617930857s DEBUG mutant{id=108}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.318384274s -1022.618076237s TRACE mutant{id=108}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "/", genre: BinaryOperator, span: Span(359, 24, 359, 25), package_name: "faktory" } -1022.618587481s DEBUG mutant{id=108}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1022.618739744s TRACE mutant{id=109}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::with_connector", return_type: "-> Result", span: Span(59, 5, 70, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(63, 9, 69, 68), package_name: "faktory" } -1022.618813057s DEBUG mutant{id=109}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1022.820192680s DEBUG mutant{id=109}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.386494ms -1022.820361626s TRACE mutant{id=109}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::with_connector", return_type: "-> Result", span: Span(59, 5, 70, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(63, 9, 69, 68), package_name: "faktory" } -1022.820896897s DEBUG mutant{id=109}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1022.821040774s TRACE mutant{id=110}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_ok", return_type: "-> Result<(), Error>", span: Span(109, 1, 118, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(110, 5, 117, 38), package_name: "faktory" } -1022.821097287s DEBUG mutant{id=110}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1024.275554822s DEBUG mutant{id=110}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.454463067s -1024.275618059s DEBUG mutant{id=110}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1037.551112652s DEBUG mutant{id=110}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.275513498s -1037.551186871s TRACE mutant{id=110}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_ok", return_type: "-> Result<(), Error>", span: Span(109, 1, 118, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(110, 5, 117, 38), package_name: "faktory" } -1037.552937797s DEBUG mutant{id=110}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1037.553344847s TRACE mutant{id=111}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from_iter([Ok(1)])", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1037.553537027s DEBUG mutant{id=111}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1038.006551110s DEBUG mutant{id=111}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=453.045254ms -1038.006617611s TRACE mutant{id=111}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from_iter([Ok(1)])", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1038.007504757s DEBUG mutant{id=111}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1038.007809602s TRACE mutant{id=112}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1038.007949355s DEBUG mutant{id=112}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1038.310229780s DEBUG mutant{id=112}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.292226ms -1038.310367636s TRACE mutant{id=112}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1038.312006462s DEBUG mutant{id=112}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1038.312397293s TRACE mutant{id=113}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::deref", return_type: "-> &Self::Target", span: Span(129, 5, 131, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(130, 9, 130, 21), package_name: "faktory" } -1038.312590660s DEBUG mutant{id=113}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1038.615282439s DEBUG mutant{id=113}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.722115ms -1038.615407275s TRACE mutant{id=113}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::deref", return_type: "-> &Self::Target", span: Span(129, 5, 131, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(130, 9, 130, 21), package_name: "faktory" } -1038.616828790s DEBUG mutant{id=113}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1038.617112691s TRACE mutant{id=114}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::register_runner", return_type: "-> &mut Self", span: Span(80, 5, 91, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(89, 9, 90, 13), package_name: "faktory" } -1038.617256670s DEBUG mutant{id=114}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1040.223316314s DEBUG mutant{id=114}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.606085504s -1040.223457775s DEBUG mutant{id=114}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1043.435460498s DEBUG mutant{id=114}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.212033067s -1043.435629726s TRACE mutant{id=114}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::register_runner", return_type: "-> &mut Self", span: Span(80, 5, 91, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(89, 9, 90, 13), package_name: "faktory" } -1043.437372592s DEBUG mutant{id=114}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1043.437780051s TRACE mutant{id=115}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1043.437973058s DEBUG mutant{id=115}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1043.891242037s DEBUG mutant{id=115}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=453.300103ms -1043.891320661s TRACE mutant{id=115}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1043.893582844s DEBUG mutant{id=115}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1043.894037496s TRACE mutant{id=116}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "+", genre: BinaryOperator, span: Span(78, 24, 78, 25), package_name: "faktory" } -1043.894321431s DEBUG mutant{id=116}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1045.400796520s DEBUG mutant{id=116}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.50651383s -1045.400915183s DEBUG mutant{id=116}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1059.328491438s DEBUG mutant{id=116}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.927618564s -1059.328620962s TRACE mutant{id=116}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "+", genre: BinaryOperator, span: Span(78, 24, 78, 25), package_name: "faktory" } -1059.329921769s DEBUG mutant{id=116}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1059.330465872s TRACE mutant{id=117}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::init", return_type: "-> Result<(), Error>", span: Span(228, 5, 266, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(229, 9, 265, 15), package_name: "faktory" } -1059.330748954s DEBUG mutant{id=117}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1061.237398588s DEBUG mutant{id=117}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.906675202s -1061.237518849s DEBUG mutant{id=117}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1064.451673991s DEBUG mutant{id=117}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.214175295s -1064.451874935s TRACE mutant{id=117}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::init", return_type: "-> Result<(), Error>", span: Span(228, 5, 266, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(229, 9, 265, 15), package_name: "faktory" } -1064.453869589s DEBUG mutant{id=117}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1064.454624389s TRACE mutant{id=118}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, None))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1064.459716319s DEBUG mutant{id=118}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1066.316993895s DEBUG mutant{id=118}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.857304502s -1066.317120290s DEBUG mutant{id=118}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1080.237302004s DEBUG mutant{id=118}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=13.920222438s -1080.237488736s TRACE mutant{id=118}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, None))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1080.238201000s DEBUG mutant{id=118}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1080.238298566s TRACE mutant{id=119}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::set_progress", return_type: "-> Result<(), Error>", span: Span(9, 5, 13, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(11, 9, 12, 48), package_name: "faktory" } -1080.238377510s DEBUG mutant{id=119}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1081.843061672s DEBUG mutant{id=119}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.604693602s -1081.843248899s DEBUG mutant{id=119}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1095.912390166s DEBUG mutant{id=119}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.069156615s -1095.912459506s TRACE mutant{id=119}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::set_progress", return_type: "-> Result<(), Error>", span: Span(9, 5, 13, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(11, 9, 12, 48), package_name: "faktory" } -1095.913326084s DEBUG mutant{id=119}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1095.913665122s TRACE mutant{id=120}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::new())))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1095.913834194s DEBUG mutant{id=120}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1097.419474743s DEBUG mutant{id=120}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.505655654s -1097.419540512s DEBUG mutant{id=120}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1111.430030448s DEBUG mutant{id=120}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.010500407s -1111.430069636s TRACE mutant{id=120}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::new())))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1111.431202270s DEBUG mutant{id=120}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1111.431415018s TRACE mutant{id=121}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerId::random", return_type: "-> Self", span: Span(62, 5, 65, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(64, 9, 64, 38), package_name: "faktory" } -1111.431560396s DEBUG mutant{id=121}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1113.286762169s DEBUG mutant{id=121}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.855221602s -1113.286848784s DEBUG mutant{id=121}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1127.342632932s DEBUG mutant{id=121}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.055811161s -1127.342703412s TRACE mutant{id=121}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerId::random", return_type: "-> Self", span: Span(62, 5, 65, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(64, 9, 64, 38), package_name: "faktory" } -1127.344424556s DEBUG mutant{id=121}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1127.345005478s TRACE mutant{id=122}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Fail::generic", return_type: "-> Self", span: Span(108, 5, 110, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(109, 9, 109, 46), package_name: "faktory" } -1127.345296027s DEBUG mutant{id=122}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1127.597613732s DEBUG mutant{id=122}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.351087ms -1127.597640929s TRACE mutant{id=122}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Fail::generic", return_type: "-> Self", span: Span(108, 5, 110, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(109, 9, 109, 46), package_name: "faktory" } -1127.598220327s DEBUG mutant{id=122}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1127.598339441s TRACE mutant{id=123}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_until_start", return_type: "-> &mut Self", span: Span(63, 5, 70, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(69, 9, 69, 57), package_name: "faktory" } -1127.598396855s DEBUG mutant{id=123}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1127.799437938s DEBUG mutant{id=123}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.050164ms -1127.799471128s TRACE mutant{id=123}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_until_start", return_type: "-> &mut Self", span: Span(63, 5, 70, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(69, 9, 69, 57), package_name: "faktory" } -1127.799956597s DEBUG mutant{id=123}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1127.800064631s TRACE mutant{id=124}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::from(Default::default())))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1127.800132903s DEBUG mutant{id=124}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1128.001186750s DEBUG mutant{id=124}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.073069ms -1128.001218456s TRACE mutant{id=124}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::from(Default::default())))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1128.001875033s DEBUG mutant{id=124}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1128.001971467s TRACE mutant{id=125}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(28, 23, 28, 25), package_name: "faktory" } -1128.002040087s DEBUG mutant{id=125}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1129.455643611s DEBUG mutant{id=125}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.453611884s -1129.455829806s DEBUG mutant{id=125}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1139.890681372s DEBUG mutant{id=125}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=10.434891664s -1139.890774425s TRACE mutant{id=125}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(28, 23, 28, 25), package_name: "faktory" } -1139.891866887s DEBUG mutant{id=125}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1139.892022775s TRACE mutant{id=126}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::commit_batch", return_type: "-> Result<(), Error>", span: Span(42, 5, 44, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(43, 9, 43, 67), package_name: "faktory" } -1139.892126121s DEBUG mutant{id=126}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1141.396783850s DEBUG mutant{id=126}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.504676857s -1141.396971155s DEBUG mutant{id=126}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1155.596587554s DEBUG mutant{id=126}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.199657758s -1155.596615490s TRACE mutant{id=126}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::commit_batch", return_type: "-> Result<(), Error>", span: Span(42, 5, 44, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(43, 9, 43, 67), package_name: "faktory" } -1155.597333168s DEBUG mutant{id=126}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1155.597595600s TRACE mutant{id=127}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_one", return_type: "-> Result", span: Span(244, 5, 276, 6) }), replacement: "Ok(true)", genre: FnValue, span: Span(249, 9, 275, 17), package_name: "faktory" } -1155.597729636s DEBUG mutant{id=127}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1157.303579262s DEBUG mutant{id=127}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.705859355s -1157.303729657s DEBUG mutant{id=127}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1171.051775583s DEBUG mutant{id=127}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.748074246s -1171.051891932s TRACE mutant{id=127}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_one", return_type: "-> Result", span: Span(244, 5, 276, 6) }), replacement: "Ok(true)", genre: FnValue, span: Span(249, 9, 275, 17), package_name: "faktory" } -1171.053723003s DEBUG mutant{id=127}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1171.054151580s TRACE mutant{id=128}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "||", genre: BinaryOperator, span: Span(29, 17, 29, 19), package_name: "faktory" } -1171.054423499s DEBUG mutant{id=128}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1173.211365589s DEBUG mutant{id=128}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=2.156971221s -1173.211422320s DEBUG mutant{id=128}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1243.218028442s DEBUG mutant{id=128}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.006612309s -1243.218122203s DEBUG mutant{id=128}:run{phase=Test}:terminate_child{pid=171525}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -1243.218245267s TRACE mutant{id=128}:run{phase=Test}:terminate_child{pid=171525}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -1243.221566450s DEBUG mutant{id=128}:run{phase=Test}:terminate_child{pid=171525}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -1243.221624775s DEBUG mutant{id=128}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.010221657s -1243.221639529s TRACE mutant{id=128}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "||", genre: BinaryOperator, span: Span(29, 17, 29, 19), package_name: "faktory" } -1243.222808653s DEBUG mutant{id=128}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -1243.223038878s TRACE mutant{id=129}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobId::random", return_type: "-> Self", span: Span(41, 5, 44, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(43, 9, 43, 38), package_name: "faktory" } -1243.223189919s DEBUG mutant{id=129}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1244.678894301s DEBUG mutant{id=129}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.455729496s -1244.678978061s DEBUG mutant{id=129}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1247.994345528s DEBUG mutant{id=129}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.315397796s -1247.994439009s TRACE mutant{id=129}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobId::random", return_type: "-> Self", span: Span(41, 5, 44, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(43, 9, 43, 38), package_name: "faktory" } -1247.995254839s DEBUG mutant{id=129}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1247.995499644s TRACE mutant{id=130}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::from(Default::default())]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1247.995614081s DEBUG mutant{id=130}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1248.197447363s DEBUG mutant{id=130}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.840916ms -1248.197536537s TRACE mutant{id=130}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::from(Default::default())]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1248.198568098s DEBUG mutant{id=130}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1248.198708773s TRACE mutant{id=131}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } -1248.198786956s DEBUG mutant{id=131}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1248.601001524s DEBUG mutant{id=131}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.224111ms -1248.601094559s TRACE mutant{id=131}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } -1248.601774552s DEBUG mutant{id=131}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1248.601939426s TRACE mutant{id=132}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(244, 5, 246, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(245, 9, 245, 31), package_name: "faktory" } -1248.602015802s DEBUG mutant{id=132}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1248.853344948s DEBUG mutant{id=132}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.335911ms -1248.853483403s TRACE mutant{id=132}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(244, 5, 246, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(245, 9, 245, 31), package_name: "faktory" } -1248.855612726s DEBUG mutant{id=132}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1248.855877227s TRACE mutant{id=133}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::run", return_type: "-> Result<(), E>", span: Span(62, 5, 64, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(63, 9, 63, 24), package_name: "faktory" } -1248.856080135s DEBUG mutant{id=133}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1250.110813390s DEBUG mutant{id=133}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.254766673s -1250.110863406s DEBUG mutant{id=133}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1264.354626806s DEBUG mutant{id=133}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.243776151s -1264.354704097s TRACE mutant{id=133}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::run", return_type: "-> Result<(), E>", span: Span(62, 5, 64, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(63, 9, 63, 24), package_name: "faktory" } -1264.356967567s DEBUG mutant{id=133}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1264.357805901s TRACE mutant{id=134}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::new(Default::default())]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1264.358185757s DEBUG mutant{id=134}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1264.660521138s DEBUG mutant{id=134}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.369429ms -1264.660670562s TRACE mutant{id=134}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::new(Default::default())]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1264.662426219s DEBUG mutant{id=134}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1264.662633956s TRACE mutant{id=135}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::run", return_type: "-> Result<(), E>", span: Span(90, 5, 92, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(91, 9, 91, 28), package_name: "faktory" } -1264.662877538s DEBUG mutant{id=135}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1266.068454263s DEBUG mutant{id=135}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.405616605s -1266.068584437s DEBUG mutant{id=135}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1269.579350781s DEBUG mutant{id=135}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.510789621s -1269.579444826s TRACE mutant{id=135}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::run", return_type: "-> Result<(), E>", span: Span(90, 5, 92, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(91, 9, 91, 28), package_name: "faktory" } -1269.580619516s DEBUG mutant{id=135}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1269.581078349s TRACE mutant{id=136}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_ok", return_type: "-> Result<(), Error>", span: Span(109, 1, 118, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(112, 14, 112, 16), package_name: "faktory" } -1269.581290641s DEBUG mutant{id=136}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1271.437141164s DEBUG mutant{id=136}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.855874014s -1271.437248531s DEBUG mutant{id=136}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1274.947332637s DEBUG mutant{id=136}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.510123739s -1274.947387681s TRACE mutant{id=136}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_ok", return_type: "-> Result<(), Error>", span: Span(109, 1, 118, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(112, 14, 112, 16), package_name: "faktory" } -1274.948725551s DEBUG mutant{id=136}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1274.948901484s TRACE mutant{id=137}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_id", return_type: "-> String", span: Span(6, 1, 12, 2) }), replacement: "String::new()", genre: FnValue, span: Span(7, 5, 11, 19), package_name: "faktory" } -1274.949020421s DEBUG mutant{id=137}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1276.855006547s DEBUG mutant{id=137}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.906008104s -1276.855070987s DEBUG mutant{id=137}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1277.107069584s DEBUG mutant{id=137}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.017788ms -1277.107147184s TRACE mutant{id=137}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_id", return_type: "-> String", span: Span(6, 1, 12, 2) }), replacement: "String::new()", genre: FnValue, span: Span(7, 5, 11, 19), package_name: "faktory" } -1277.107904438s DEBUG mutant{id=137}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1277.108135585s TRACE mutant{id=138}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } -1277.108251389s DEBUG mutant{id=138}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1277.610157772s DEBUG mutant{id=138}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=501.919236ms -1277.610234452s TRACE mutant{id=138}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } -1277.611216899s DEBUG mutant{id=138}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1277.611408935s TRACE mutant{id=139}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, None))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1277.611486140s DEBUG mutant{id=139}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1279.567048488s DEBUG mutant{id=139}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.955570827s -1279.567162825s DEBUG mutant{id=139}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1293.963212651s DEBUG mutant{id=139}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.396089884s -1293.963359350s TRACE mutant{id=139}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, None))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1293.965612500s DEBUG mutant{id=139}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1293.966199546s TRACE mutant{id=140}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::clone", return_type: "-> Self", span: Span(207, 5, 214, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(208, 9, 213, 10), package_name: "faktory" } -1293.966510524s DEBUG mutant{id=140}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1294.318756089s DEBUG mutant{id=140}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.276433ms -1294.318793884s TRACE mutant{id=140}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::clone", return_type: "-> Self", span: Span(207, 5, 214, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(208, 9, 213, 10), package_name: "faktory" } -1294.319738932s DEBUG mutant{id=140}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1294.319870228s TRACE mutant{id=141}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "==", genre: BinaryOperator, span: Span(16, 21, 16, 23), package_name: "faktory" } -1294.319958533s DEBUG mutant{id=141}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1296.025430944s DEBUG mutant{id=141}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.705483001s -1296.025527387s DEBUG mutant{id=141}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1299.389147165s DEBUG mutant{id=141}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.363652016s -1299.389254939s TRACE mutant{id=141}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "==", genre: BinaryOperator, span: Span(16, 21, 16, 23), package_name: "faktory" } -1299.390414836s DEBUG mutant{id=141}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1299.390579108s TRACE mutant{id=142}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::get_progress", return_type: "-> Result, Error>", span: Span(15, 5, 19, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(17, 9, 18, 50), package_name: "faktory" } -1299.390676143s DEBUG mutant{id=142}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1300.796066518s DEBUG mutant{id=142}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.405407459s -1300.796293596s DEBUG mutant{id=142}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1315.091231746s DEBUG mutant{id=142}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.294981972s -1315.091329434s TRACE mutant{id=142}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::get_progress", return_type: "-> Result, Error>", span: Span(15, 5, 19, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(17, 9, 18, 50), package_name: "faktory" } -1315.092843836s DEBUG mutant{id=142}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1315.093082321s TRACE mutant{id=143}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "host_from_url", return_type: "-> String", span: Span(10, 1, 12, 2) }), replacement: "String::new()", genre: FnValue, span: Span(11, 5, 11, 74), package_name: "faktory" } -1315.093223459s DEBUG mutant{id=143}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1316.549346693s DEBUG mutant{id=143}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.456143995s -1316.549496275s DEBUG mutant{id=143}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1319.809505033s DEBUG mutant{id=143}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.26005833s -1319.809590009s TRACE mutant{id=143}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "host_from_url", return_type: "-> String", span: Span(10, 1, 12, 2) }), replacement: "String::new()", genre: FnValue, span: Span(11, 5, 11, 74), package_name: "faktory" } -1319.810457875s DEBUG mutant{id=143}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1319.810746991s TRACE mutant{id=144}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue", return_type: "-> Result<(), Error>", span: Span(322, 5, 327, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(326, 9, 326, 60), package_name: "faktory" } -1319.810861518s DEBUG mutant{id=144}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1321.366501631s DEBUG mutant{id=144}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.555655808s -1321.366544520s DEBUG mutant{id=144}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1334.718986922s DEBUG mutant{id=144}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.352453673s -1334.719037832s TRACE mutant{id=144}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue", return_type: "-> Result<(), Error>", span: Span(322, 5, 327, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(326, 9, 326, 60), package_name: "faktory" } -1334.720398864s DEBUG mutant{id=144}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1334.720671745s TRACE mutant{id=145}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -1334.720809700s DEBUG mutant{id=145}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1335.173114632s DEBUG mutant{id=145}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.326407ms -1335.173177796s TRACE mutant{id=145}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -1335.173931548s DEBUG mutant{id=145}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1335.174197435s TRACE mutant{id=146}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "+", genre: BinaryOperator, span: Span(359, 24, 359, 25), package_name: "faktory" } -1335.174314648s DEBUG mutant{id=146}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1336.729401960s DEBUG mutant{id=146}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.555095786s -1336.729504350s DEBUG mutant{id=146}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1350.929190118s DEBUG mutant{id=146}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.199708678s -1350.929253131s TRACE mutant{id=146}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "+", genre: BinaryOperator, span: Span(359, 24, 359, 25), package_name: "faktory" } -1350.929742225s DEBUG mutant{id=146}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1350.929827624s TRACE mutant{id=147}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "&&", genre: BinaryOperator, span: Span(23, 33, 23, 35), package_name: "faktory" } -1350.929870947s DEBUG mutant{id=147}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1352.234177444s DEBUG mutant{id=147}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.304310197s -1352.234423873s DEBUG mutant{id=147}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1366.393354835s DEBUG mutant{id=147}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.15896993s -1366.393484079s TRACE mutant{id=147}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "&&", genre: BinaryOperator, span: Span(23, 33, 23, 35), package_name: "faktory" } -1366.395492450s DEBUG mutant{id=147}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1366.395969411s TRACE mutant{id=148}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_callbacks", return_type: "-> Batch", span: Span(197, 5, 203, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(199, 9, 202, 10), package_name: "faktory" } -1366.396209254s DEBUG mutant{id=148}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1366.648400097s DEBUG mutant{id=148}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.210985ms -1366.648442463s TRACE mutant{id=148}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_callbacks", return_type: "-> Batch", span: Span(197, 5, 203, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(199, 9, 202, 10), package_name: "faktory" } -1366.649167432s DEBUG mutant{id=148}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1366.649315208s TRACE mutant{id=149}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new(Ok(0))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1366.649384878s DEBUG mutant{id=149}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1367.001366059s DEBUG mutant{id=149}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=351.992545ms -1367.001418516s TRACE mutant{id=149}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new(Ok(0))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1367.001861972s DEBUG mutant{id=149}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1367.001952252s TRACE mutant{id=150}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -1367.001989228s DEBUG mutant{id=150}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1367.403819017s DEBUG mutant{id=150}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=401.836773ms -1367.403900188s TRACE mutant{id=150}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -1367.404846385s DEBUG mutant{id=150}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1367.405176165s TRACE mutant{id=151}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::new()))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1367.405309533s DEBUG mutant{id=151}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1367.657069655s DEBUG mutant{id=151}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.774081ms -1367.657127528s TRACE mutant{id=151}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::new()))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1367.658919793s DEBUG mutant{id=151}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1367.659562774s TRACE mutant{id=152}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::from(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1367.665247309s DEBUG mutant{id=152}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1367.968026726s DEBUG mutant{id=152}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.809135ms -1367.968086437s TRACE mutant{id=152}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::from(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1367.969649783s DEBUG mutant{id=152}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1367.969850189s TRACE mutant{id=153}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "get_env_url", return_type: "-> String", span: Span(4, 1, 8, 2) }), replacement: "String::new()", genre: FnValue, span: Span(5, 5, 7, 73), package_name: "faktory" } -1367.969989850s DEBUG mutant{id=153}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1369.175106253s DEBUG mutant{id=153}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.205139446s -1369.175229541s DEBUG mutant{id=153}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1372.636307754s DEBUG mutant{id=153}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.461118894s -1372.636364461s TRACE mutant{id=153}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "get_env_url", return_type: "-> String", span: Span(4, 1, 8, 2) }), replacement: "String::new()", genre: FnValue, span: Span(5, 5, 7, 73), package_name: "faktory" } -1372.637119740s DEBUG mutant{id=153}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1372.637269881s TRACE mutant{id=154}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::default", return_type: "-> io::Result", span: Span(77, 5, 88, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(83, 9, 87, 53), package_name: "faktory" } -1372.637346011s DEBUG mutant{id=154}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1372.838551645s DEBUG mutant{id=154}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.21811ms -1372.838611161s TRACE mutant{id=154}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::default", return_type: "-> io::Result", span: Span(77, 5, 88, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(83, 9, 87, 53), package_name: "faktory" } -1372.839512383s DEBUG mutant{id=154}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1372.839615175s TRACE mutant{id=155}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::from(Default::default()))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -1372.839699824s DEBUG mutant{id=155}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1373.040836729s DEBUG mutant{id=155}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.150046ms -1373.040914872s TRACE mutant{id=155}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::from(Default::default()))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -1373.042106189s DEBUG mutant{id=155}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1373.042391001s TRACE mutant{id=156}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Fail::generic_with_backtrace", return_type: "-> Self", span: Span(119, 5, 132, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(123, 9, 131, 10), package_name: "faktory" } -1373.042542100s DEBUG mutant{id=156}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1373.294242492s DEBUG mutant{id=156}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.719346ms -1373.294268698s TRACE mutant{id=156}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Fail::generic_with_backtrace", return_type: "-> Self", span: Span(119, 5, 132, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(123, 9, 131, 10), package_name: "faktory" } -1373.295033765s DEBUG mutant{id=156}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1373.295247168s TRACE mutant{id=157}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1373.295349881s DEBUG mutant{id=157}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1373.546478262s DEBUG mutant{id=157}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.138919ms -1373.546529077s TRACE mutant{id=157}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1373.547053926s DEBUG mutant{id=157}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1373.547229051s TRACE mutant{id=158}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::new()]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1373.547294262s DEBUG mutant{id=158}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1373.798764332s DEBUG mutant{id=158}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.477657ms -1373.798794989s TRACE mutant{id=158}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::new()]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1373.799328776s DEBUG mutant{id=158}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1373.799403891s TRACE mutant{id=159}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::new()))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1373.799444077s DEBUG mutant{id=159}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1374.000596554s DEBUG mutant{id=159}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.159173ms -1374.000624190s TRACE mutant{id=159}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::new()))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1374.001172229s DEBUG mutant{id=159}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1374.001334423s TRACE mutant{id=160}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_ok", return_type: "-> Result<(), Error>", span: Span(401, 5, 403, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(402, 9, 402, 50), package_name: "faktory" } -1374.001406042s DEBUG mutant{id=160}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1375.857141182s DEBUG mutant{id=160}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.855745692s -1375.857275973s DEBUG mutant{id=160}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1390.155772227s DEBUG mutant{id=160}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.298521996s -1390.155820346s TRACE mutant{id=160}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_ok", return_type: "-> Result<(), Error>", span: Span(401, 5, 403, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(402, 9, 402, 50), package_name: "faktory" } -1390.157471180s DEBUG mutant{id=160}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1390.157982493s TRACE mutant{id=161}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::connect_again", return_type: "-> Result", span: Span(158, 5, 161, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(159, 9, 160, 48), package_name: "faktory" } -1390.163495288s DEBUG mutant{id=161}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1390.465305417s DEBUG mutant{id=161}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.834092ms -1390.465393792s TRACE mutant{id=161}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::connect_again", return_type: "-> Result", span: Span(158, 5, 161, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(159, 9, 160, 48), package_name: "faktory" } -1390.466695532s DEBUG mutant{id=161}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1390.466841163s TRACE mutant{id=162}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::add", return_type: "-> Result, Error>", span: Span(21, 5, 29, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(27, 9, 28, 47), package_name: "faktory" } -1390.466958216s DEBUG mutant{id=162}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1392.072790276s DEBUG mutant{id=162}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.605850439s -1392.072935877s DEBUG mutant{id=162}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1406.217702678s DEBUG mutant{id=162}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.144779873s -1406.217758138s TRACE mutant{id=162}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::add", return_type: "-> Result, Error>", span: Span(21, 5, 29, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(27, 9, 28, 47), package_name: "faktory" } -1406.218651023s DEBUG mutant{id=162}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1406.218760141s TRACE mutant{id=163}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::new(Default::default()))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -1406.225221679s DEBUG mutant{id=163}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1406.426538378s DEBUG mutant{id=163}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.335685ms -1406.426618299s TRACE mutant{id=163}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::new(Default::default()))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -1406.427612431s DEBUG mutant{id=163}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1406.427933120s TRACE mutant{id=164}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(String::new(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1406.428076877s DEBUG mutant{id=164}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1408.033263716s DEBUG mutant{id=164}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.605203461s -1408.033361998s DEBUG mutant{id=164}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1422.144676067s DEBUG mutant{id=164}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.111325809s -1422.144741925s TRACE mutant{id=164}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(String::new(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1422.145851089s DEBUG mutant{id=164}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1422.146128311s TRACE mutant{id=165}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_success_callback", return_type: "-> Batch", span: Span(183, 5, 188, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(185, 9, 187, 10), package_name: "faktory" } -1422.146279900s DEBUG mutant{id=165}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1422.447848744s DEBUG mutant{id=165}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.580662ms -1422.448424912s TRACE mutant{id=165}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_success_callback", return_type: "-> Batch", span: Span(183, 5, 188, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(185, 9, 187, 10), package_name: "faktory" } -1422.450730613s DEBUG mutant{id=165}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1422.450954698s TRACE mutant{id=166}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(14, 5, 28, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(15, 9, 27, 10), package_name: "faktory" } -1422.451154204s DEBUG mutant{id=166}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1424.056950344s DEBUG mutant{id=166}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.60582768s -1424.057101319s DEBUG mutant{id=166}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1438.372441761s DEBUG mutant{id=166}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.315366297s -1438.372533543s TRACE mutant{id=166}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(14, 5, 28, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(15, 9, 27, 10), package_name: "faktory" } -1438.373549242s DEBUG mutant{id=166}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1438.373651554s TRACE mutant{id=167}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::deref", return_type: "-> &Self::Target", span: Span(31, 5, 33, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(32, 9, 32, 16), package_name: "faktory" } -1438.373729138s DEBUG mutant{id=167}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1438.625077179s DEBUG mutant{id=167}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.358423ms -1438.625107240s TRACE mutant{id=167}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::deref", return_type: "-> &Self::Target", span: Span(31, 5, 33, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(32, 9, 32, 16), package_name: "faktory" } -1438.625940810s DEBUG mutant{id=167}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1438.626145551s TRACE mutant{id=168}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::failure", return_type: "-> &Option", span: Span(258, 5, 261, 6) }), replacement: "&Some(Default::default())", genre: FnValue, span: Span(260, 9, 260, 22), package_name: "faktory" } -1438.626240422s DEBUG mutant{id=168}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1438.777316498s DEBUG mutant{id=168}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=151.088381ms -1438.777371488s TRACE mutant{id=168}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::failure", return_type: "-> &Option", span: Span(258, 5, 261, 6) }), replacement: "&Some(Default::default())", genre: FnValue, span: Span(260, 9, 260, 22), package_name: "faktory" } -1438.778242211s DEBUG mutant{id=168}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1438.778472599s TRACE mutant{id=169}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(190, 63, 190, 64), package_name: "faktory" } -1438.778583463s DEBUG mutant{id=169}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1440.334549808s DEBUG mutant{id=169}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.555974429s -1440.334681140s DEBUG mutant{id=169}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1443.649361594s DEBUG mutant{id=169}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.314723708s -1443.649449582s TRACE mutant{id=169}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(190, 63, 190, 64), package_name: "faktory" } -1443.652763850s DEBUG mutant{id=169}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1443.653471946s TRACE mutant{id=170}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(172, 29, 172, 30), package_name: "faktory" } -1443.657235492s DEBUG mutant{id=170}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1445.213743510s DEBUG mutant{id=170}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.556557184s -1445.213879030s DEBUG mutant{id=170}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1448.427581288s DEBUG mutant{id=170}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.213725476s -1448.427771021s TRACE mutant{id=170}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(172, 29, 172, 30), package_name: "faktory" } -1448.431633933s DEBUG mutant{id=170}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1448.432294489s TRACE mutant{id=171}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "write_command_and_await_ok", return_type: "-> Result<(), Error>", span: Span(271, 1, 280, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(278, 5, 279, 26), package_name: "faktory" } -1448.432550207s DEBUG mutant{id=171}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1449.989488573s DEBUG mutant{id=171}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.556967059s -1449.989549096s DEBUG mutant{id=171}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1463.556948881s DEBUG mutant{id=171}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.567417103s -1463.557014317s TRACE mutant{id=171}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "write_command_and_await_ok", return_type: "-> Result<(), Error>", span: Span(271, 1, 280, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(278, 5, 279, 26), package_name: "faktory" } -1463.559999457s DEBUG mutant{id=171}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1463.560300460s TRACE mutant{id=172}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::fmt", return_type: "-> std::fmt::Result", span: Span(30, 5, 38, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(31, 9, 37, 27), package_name: "faktory" } -1463.560510528s DEBUG mutant{id=172}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1465.267183216s DEBUG mutant{id=172}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.706703956s -1465.267273240s DEBUG mutant{id=172}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1479.381660165s DEBUG mutant{id=172}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.114418089s -1479.381855548s TRACE mutant{id=172}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::fmt", return_type: "-> std::fmt::Result", span: Span(30, 5, 38, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(31, 9, 37, 27), package_name: "faktory" } -1479.382838408s DEBUG mutant{id=172}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1479.383097186s TRACE mutant{id=173}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_on_all_workers", return_type: "-> Result<(), Error>", span: Span(185, 5, 221, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(186, 9, 220, 15), package_name: "faktory" } -1479.383357965s DEBUG mutant{id=173}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1481.188405150s DEBUG mutant{id=173}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.805077187s -1481.188581638s DEBUG mutant{id=173}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1495.545058035s DEBUG mutant{id=173}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.356507789s -1495.545237336s TRACE mutant{id=173}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_on_all_workers", return_type: "-> Result<(), Error>", span: Span(185, 5, 221, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(186, 9, 220, 15), package_name: "faktory" } -1495.548406486s DEBUG mutant{id=173}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1495.548812766s TRACE mutant{id=174}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::workers", return_type: "-> &mut Self", span: Span(57, 5, 63, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(61, 9, 62, 13), package_name: "faktory" } -1495.549054902s DEBUG mutant{id=174}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1497.555057105s DEBUG mutant{id=174}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=2.006031862s -1497.555194599s DEBUG mutant{id=174}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1511.266329690s DEBUG mutant{id=174}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.711159518s -1511.266389545s TRACE mutant{id=174}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::workers", return_type: "-> &mut Self", span: Span(57, 5, 63, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(61, 9, 62, 13), package_name: "faktory" } -1511.268381587s DEBUG mutant{id=174}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1511.268589517s TRACE mutant{id=175}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::connect_with", return_type: "-> Result, E>, Error>", span: Span(93, 5, 104, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(99, 9, 103, 74), package_name: "faktory" } -1511.274527212s DEBUG mutant{id=175}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1511.576447585s DEBUG mutant{id=175}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.93888ms -1511.576478767s TRACE mutant{id=175}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::connect_with", return_type: "-> Result, E>, Error>", span: Span(93, 5, 104, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(99, 9, 103, 74), package_name: "faktory" } -1511.577083709s DEBUG mutant{id=175}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1511.577162414s TRACE mutant{id=176}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -1511.577202087s DEBUG mutant{id=176}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1513.181860462s DEBUG mutant{id=176}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.604664324s -1513.181996570s DEBUG mutant{id=176}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1527.377696359s DEBUG mutant{id=176}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.195749277s -1527.377766655s TRACE mutant{id=176}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -1527.378842691s DEBUG mutant{id=176}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1527.379197353s TRACE mutant{id=177}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "Ok(None)", genre: FnValue, span: Span(37, 5, 62, 33), package_name: "faktory" } -1527.379352621s DEBUG mutant{id=177}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1529.185678404s DEBUG mutant{id=177}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.8063323s -1529.185826798s DEBUG mutant{id=177}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1532.598201445s DEBUG mutant{id=177}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.412402978s -1532.598285210s TRACE mutant{id=177}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "Ok(None)", genre: FnValue, span: Span(37, 5, 62, 33), package_name: "faktory" } -1532.599493494s DEBUG mutant{id=177}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1532.599621211s TRACE mutant{id=178}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_cuurently_running", return_type: "-> Option", span: Span(18, 5, 20, 6) }), replacement: "Some(Default::default())", genre: FnValue, span: Span(19, 9, 19, 32), package_name: "faktory" } -1532.599697611s DEBUG mutant{id=178}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1534.506762295s DEBUG mutant{id=178}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.907078886s -1534.506917731s DEBUG mutant{id=178}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1548.010391410s DEBUG mutant{id=178}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.503505604s -1548.010440224s TRACE mutant{id=178}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_cuurently_running", return_type: "-> Option", span: Span(18, 5, 20, 6) }), replacement: "Some(Default::default())", genre: FnValue, span: Span(19, 9, 19, 32), package_name: "faktory" } -1548.012427754s DEBUG mutant{id=178}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1548.012759177s TRACE mutant{id=179}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::new())", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } -1548.012982696s DEBUG mutant{id=179}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1548.265091667s DEBUG mutant{id=179}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.14032ms -1548.265144716s TRACE mutant{id=179}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::new())", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } -1548.265826481s DEBUG mutant{id=179}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1548.266011125s TRACE mutant{id=180}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(238, 5, 240, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(239, 9, 239, 43), package_name: "faktory" } -1548.266084926s DEBUG mutant{id=180}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1548.467212491s DEBUG mutant{id=180}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.135751ms -1548.467390483s TRACE mutant{id=180}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(238, 5, 240, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(239, 9, 239, 43), package_name: "faktory" } -1548.468157630s DEBUG mutant{id=180}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1548.468329957s TRACE mutant{id=181}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "-=", genre: BinaryOperator, span: Span(232, 25, 232, 27), package_name: "faktory" } -1548.468397574s DEBUG mutant{id=181}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1549.921921874s DEBUG mutant{id=181}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.453529621s -1549.921978380s DEBUG mutant{id=181}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1563.361536926s DEBUG mutant{id=181}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.439574316s -1563.361604090s TRACE mutant{id=181}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "-=", genre: BinaryOperator, span: Span(232, 25, 232, 27), package_name: "faktory" } -1563.363469235s DEBUG mutant{id=181}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1563.363956139s TRACE mutant{id=182}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new())", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1563.364133911s DEBUG mutant{id=182}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1563.665963502s DEBUG mutant{id=182}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.849841ms -1563.666000336s TRACE mutant{id=182}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new())", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1563.667309911s DEBUG mutant{id=182}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1563.667445406s TRACE mutant{id=183}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_wid", return_type: "-> String", span: Span(18, 1, 20, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(19, 5, 19, 36), package_name: "faktory" } -1563.667529210s DEBUG mutant{id=183}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1565.171853965s DEBUG mutant{id=183}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.504341314s -1565.171906099s DEBUG mutant{id=183}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1579.465166076s DEBUG mutant{id=183}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.29327244s -1579.465249983s TRACE mutant{id=183}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_wid", return_type: "-> String", span: Span(18, 1, 20, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(19, 5, 19, 36), package_name: "faktory" } -1579.466641643s DEBUG mutant{id=183}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1579.467003451s TRACE mutant{id=184}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::id", return_type: "-> &JobId", span: Span(243, 5, 246, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(245, 9, 245, 18), package_name: "faktory" } -1579.467191645s DEBUG mutant{id=184}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1579.669408067s DEBUG mutant{id=184}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=202.235185ms -1579.669468829s TRACE mutant{id=184}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::id", return_type: "-> &JobId", span: Span(243, 5, 246, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(245, 9, 245, 18), package_name: "faktory" } -1579.670366281s DEBUG mutant{id=184}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1579.670499299s TRACE mutant{id=185}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "<", genre: BinaryOperator, span: Span(93, 70, 93, 72), package_name: "faktory" } -1579.670580778s DEBUG mutant{id=185}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1581.025429145s DEBUG mutant{id=185}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.354857879s -1581.025518011s DEBUG mutant{id=185}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1595.386848528s DEBUG mutant{id=185}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.361358026s -1595.386920490s TRACE mutant{id=185}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "<", genre: BinaryOperator, span: Span(93, 70, 93, 72), package_name: "faktory" } -1595.389443718s DEBUG mutant{id=185}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1595.389859189s TRACE mutant{id=186}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "*", genre: BinaryOperator, span: Span(110, 38, 110, 39), package_name: "faktory" } -1595.395453406s DEBUG mutant{id=186}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1596.501002286s DEBUG mutant{id=186}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.105570922s -1596.501129402s DEBUG mutant{id=186}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1610.693529238s DEBUG mutant{id=186}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.192422494s -1610.693570270s TRACE mutant{id=186}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "*", genre: BinaryOperator, span: Span(110, 38, 110, 39), package_name: "faktory" } -1610.694827898s DEBUG mutant{id=186}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1610.695094203s TRACE mutant{id=187}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "*", genre: BinaryOperator, span: Span(109, 52, 109, 53), package_name: "faktory" } -1610.701103172s DEBUG mutant{id=187}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1611.654919190s DEBUG mutant{id=187}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=953.839522ms -1611.655064353s DEBUG mutant{id=187}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1625.953077194s DEBUG mutant{id=187}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.29805456s -1625.953221156s TRACE mutant{id=187}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "*", genre: BinaryOperator, span: Span(109, 52, 109, 53), package_name: "faktory" } -1625.956142752s DEBUG mutant{id=187}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1625.956721251s TRACE mutant{id=188}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(242, 5, 244, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(243, 9, 243, 16), package_name: "faktory" } -1625.957054350s DEBUG mutant{id=188}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1626.209615805s DEBUG mutant{id=188}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.597061ms -1626.209648419s TRACE mutant{id=188}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(242, 5, 244, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(243, 9, 243, 16), package_name: "faktory" } -1626.210807204s DEBUG mutant{id=188}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1626.211032311s TRACE mutant{id=189}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(143, 5, 145, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(144, 9, 144, 43), package_name: "faktory" } -1626.211139770s DEBUG mutant{id=189}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1627.665332935s DEBUG mutant{id=189}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.45420719s -1627.665507349s DEBUG mutant{id=189}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1641.261348368s DEBUG mutant{id=189}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.595871591s -1641.261400262s TRACE mutant{id=189}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(143, 5, 145, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(144, 9, 144, 43), package_name: "faktory" } -1641.263114093s DEBUG mutant{id=189}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1641.263400645s TRACE mutant{id=190}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "()", genre: FnValue, span: Span(15, 5, 118, 34), package_name: "faktory" } -1641.263519350s DEBUG mutant{id=190}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1642.718693168s DEBUG mutant{id=190}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.455195094s -1642.718810731s DEBUG mutant{id=190}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1656.969498724s DEBUG mutant{id=190}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.250710503s -1656.969581977s TRACE mutant{id=190}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "()", genre: FnValue, span: Span(15, 5, 118, 34), package_name: "faktory" } -1656.970836999s DEBUG mutant{id=190}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1656.971009794s TRACE mutant{id=191}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_wid", return_type: "-> String", span: Span(18, 1, 20, 2) }), replacement: "String::new()", genre: FnValue, span: Span(19, 5, 19, 36), package_name: "faktory" } -1656.971130048s DEBUG mutant{id=191}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1658.576849819s DEBUG mutant{id=191}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.605736896s -1658.577035959s DEBUG mutant{id=191}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1672.877420130s DEBUG mutant{id=191}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.300413948s -1672.877484289s TRACE mutant{id=191}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_wid", return_type: "-> String", span: Span(18, 1, 20, 2) }), replacement: "String::new()", genre: FnValue, span: Span(19, 5, 19, 36), package_name: "faktory" } -1672.879363082s DEBUG mutant{id=191}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1672.879902104s TRACE mutant{id=192}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1672.880138212s DEBUG mutant{id=192}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1674.586373572s DEBUG mutant{id=192}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.706256418s -1674.586482482s DEBUG mutant{id=192}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1688.933045641s DEBUG mutant{id=192}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.346581961s -1688.933144546s TRACE mutant{id=192}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1688.934957355s DEBUG mutant{id=192}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1688.935208345s TRACE mutant{id=193}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "Ok(false)", genre: FnValue, span: Span(20, 9, 76, 10), package_name: "faktory" } -1688.935393208s DEBUG mutant{id=193}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1690.641508426s DEBUG mutant{id=193}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.706140561s -1690.641585588s DEBUG mutant{id=193}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1760.664530839s DEBUG mutant{id=193}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.022947788s -1760.664611254s DEBUG mutant{id=193}:run{phase=Test}:terminate_child{pid=246651}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -1760.664717615s TRACE mutant{id=193}:run{phase=Test}:terminate_child{pid=246651}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -1760.667899918s DEBUG mutant{id=193}:run{phase=Test}:terminate_child{pid=246651}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -1760.667957524s DEBUG mutant{id=193}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.026385284s -1760.668028196s TRACE mutant{id=193}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "Ok(false)", genre: FnValue, span: Span(20, 9, 76, 10), package_name: "faktory" } -1760.669933085s DEBUG mutant{id=193}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -1760.670489353s TRACE mutant{id=194}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1760.670743777s DEBUG mutant{id=194}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1762.577732451s DEBUG mutant{id=194}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.907011271s -1762.577919337s DEBUG mutant{id=194}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1776.970606529s DEBUG mutant{id=194}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.392728061s -1776.970647622s TRACE mutant{id=194}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1776.972325262s DEBUG mutant{id=194}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1776.972534454s TRACE mutant{id=195}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::from_iter([Default::default()])))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1776.972680094s DEBUG mutant{id=195}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1777.224465397s DEBUG mutant{id=195}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.806719ms -1777.224511973s TRACE mutant{id=195}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::from_iter([Default::default()])))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1777.225972087s DEBUG mutant{id=195}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1777.226380429s TRACE mutant{id=196}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::new(Default::default())]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1777.226553793s DEBUG mutant{id=196}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1777.528604085s DEBUG mutant{id=196}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.068266ms -1777.528638424s TRACE mutant{id=196}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::new(Default::default())]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1777.529623948s DEBUG mutant{id=196}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1777.529861137s TRACE mutant{id=197}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::new())))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1777.529953446s DEBUG mutant{id=197}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1779.034372139s DEBUG mutant{id=197}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.504428065s -1779.034417821s DEBUG mutant{id=197}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1793.327756356s DEBUG mutant{id=197}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.293350364s -1793.327833308s TRACE mutant{id=197}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::new())))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1793.329142259s DEBUG mutant{id=197}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1793.329506899s TRACE mutant{id=198}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::reconnect", return_type: "-> Result<(), Error>", span: Span(163, 5, 166, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(164, 9, 165, 26), package_name: "faktory" } -1793.335195720s DEBUG mutant{id=198}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1795.492289733s DEBUG mutant{id=198}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=2.157117905s -1795.492342049s DEBUG mutant{id=198}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1809.833814858s DEBUG mutant{id=198}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.341486406s -1809.833868952s TRACE mutant{id=198}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::reconnect", return_type: "-> Result<(), Error>", span: Span(163, 5, 166, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(164, 9, 165, 26), package_name: "faktory" } -1809.836278286s DEBUG mutant{id=198}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1809.836462397s TRACE mutant{id=199}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::reconnect", return_type: "-> io::Result", span: Span(49, 5, 52, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(50, 9, 51, 30), package_name: "faktory" } -1809.836604067s DEBUG mutant{id=199}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1810.088564508s DEBUG mutant{id=199}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.979861ms -1810.088586323s TRACE mutant{id=199}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::reconnect", return_type: "-> io::Result", span: Span(49, 5, 52, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(50, 9, 51, 30), package_name: "faktory" } -1810.089177246s DEBUG mutant{id=199}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1810.089337607s TRACE mutant{id=200}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::from_iter([Default::default()]))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } -1810.089395847s DEBUG mutant{id=200}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1810.290892889s DEBUG mutant{id=200}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.502835ms -1810.290926359s TRACE mutant{id=200}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::from_iter([Default::default()]))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } -1810.292258841s DEBUG mutant{id=200}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1810.292523553s TRACE mutant{id=201}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_provided_or_from_env", return_type: "-> Result", span: Span(30, 1, 32, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(31, 5, 31, 45), package_name: "faktory" } -1810.292637491s DEBUG mutant{id=201}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1810.544373961s DEBUG mutant{id=201}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.745912ms -1810.544457171s TRACE mutant{id=201}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_provided_or_from_env", return_type: "-> Result", span: Span(30, 1, 32, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(31, 5, 31, 45), package_name: "faktory" } -1810.545829355s DEBUG mutant{id=201}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1810.546237320s TRACE mutant{id=202}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::new(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1810.546384629s DEBUG mutant{id=202}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1810.798596176s DEBUG mutant{id=202}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.228132ms -1810.798627795s TRACE mutant{id=202}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::new(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1810.799211137s DEBUG mutant{id=202}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1810.799295721s TRACE mutant{id=203}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(78, 28, 78, 30), package_name: "faktory" } -1810.799337509s DEBUG mutant{id=203}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1812.554463935s DEBUG mutant{id=203}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.755131841s -1812.554553197s DEBUG mutant{id=203}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1826.845036521s DEBUG mutant{id=203}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.290499272s -1826.845089068s TRACE mutant{id=203}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(78, 28, 78, 30), package_name: "faktory" } -1826.847285312s DEBUG mutant{id=203}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1826.847723101s TRACE mutant{id=204}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(262, 5, 264, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(263, 9, 263, 23), package_name: "faktory" } -1826.847957716s DEBUG mutant{id=204}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1827.099680671s DEBUG mutant{id=204}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.74668ms -1827.099741912s TRACE mutant{id=204}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(262, 5, 264, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(263, 9, 263, 23), package_name: "faktory" } -1827.102137789s DEBUG mutant{id=204}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1827.102460836s TRACE mutant{id=205}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new(Ok(1))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1827.102619722s DEBUG mutant{id=205}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1827.555119571s DEBUG mutant{id=205}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.520074ms -1827.555190012s TRACE mutant{id=205}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new(Ok(1))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1827.557145355s DEBUG mutant{id=205}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1827.557281094s TRACE mutant{id=206}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::new(Default::default())))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1827.557369837s DEBUG mutant{id=206}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1827.809121016s DEBUG mutant{id=206}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.767633ms -1827.809146467s TRACE mutant{id=206}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::new(Default::default())))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1827.809737346s DEBUG mutant{id=206}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1827.809902526s TRACE mutant{id=207}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1827.809963271s DEBUG mutant{id=207}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1828.061389570s DEBUG mutant{id=207}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.431826ms -1828.061450241s TRACE mutant{id=207}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1828.062093402s DEBUG mutant{id=207}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1828.062248490s TRACE mutant{id=208}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::reconnect", return_type: "-> Result<(), Error>", span: Span(147, 5, 149, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(148, 9, 148, 33), package_name: "faktory" } -1828.062310566s DEBUG mutant{id=208}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1829.616750816s DEBUG mutant{id=208}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.554447462s -1829.616792955s DEBUG mutant{id=208}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1843.857934678s DEBUG mutant{id=208}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.241152002s -1843.857974802s TRACE mutant{id=208}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::reconnect", return_type: "-> Result<(), Error>", span: Span(147, 5, 149, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(148, 9, 148, 33), package_name: "faktory" } -1843.859783904s DEBUG mutant{id=208}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1843.859977451s TRACE mutant{id=209}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_until_success", return_type: "-> &mut Self", span: Span(72, 5, 80, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(79, 9, 79, 59), package_name: "faktory" } -1843.860120703s DEBUG mutant{id=209}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1844.061601715s DEBUG mutant{id=209}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.495607ms -1844.061687651s TRACE mutant{id=209}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_until_success", return_type: "-> &mut Self", span: Span(72, 5, 80, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(79, 9, 79, 59), package_name: "faktory" } -1844.062657160s DEBUG mutant{id=209}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1844.062877371s TRACE mutant{id=210}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::kind", return_type: "-> &str", span: Span(248, 5, 251, 6) }), replacement: "\"xyzzy\"", genre: FnValue, span: Span(250, 9, 250, 19), package_name: "faktory" } -1844.062977617s DEBUG mutant{id=210}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1845.367053370s DEBUG mutant{id=210}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.304095759s -1845.367197556s DEBUG mutant{id=210}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1848.878530656s DEBUG mutant{id=210}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.511356094s -1848.878626168s TRACE mutant{id=210}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::kind", return_type: "-> &str", span: Span(248, 5, 251, 6) }), replacement: "\"xyzzy\"", genre: FnValue, span: Span(250, 9, 250, 19), package_name: "faktory" } -1848.880292616s DEBUG mutant{id=210}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1848.880474982s TRACE mutant{id=211}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::get_batch_status", return_type: "-> Result, Error>", span: Span(21, 5, 25, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(23, 9, 24, 50), package_name: "faktory" } -1848.880582384s DEBUG mutant{id=211}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1850.536174866s DEBUG mutant{id=211}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.655612551s -1850.536255398s DEBUG mutant{id=211}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1864.976514634s DEBUG mutant{id=211}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.440285863s -1864.976565795s TRACE mutant{id=211}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::get_batch_status", return_type: "-> Result, Error>", span: Span(21, 5, 25, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(23, 9, 24, 50), package_name: "faktory" } -1864.978712422s DEBUG mutant{id=211}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1864.978989109s TRACE mutant{id=212}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::new()))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -1864.984947404s DEBUG mutant{id=212}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1865.237024130s DEBUG mutant{id=212}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.097793ms -1865.237086519s TRACE mutant{id=212}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::new()))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -1865.239547792s DEBUG mutant{id=212}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1865.239755294s TRACE mutant{id=213}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(None)", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1865.239896425s DEBUG mutant{id=213}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1866.745481334s DEBUG mutant{id=213}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.505609748s -1866.745554165s DEBUG mutant{id=213}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1881.053001396s DEBUG mutant{id=213}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.307470422s -1881.053065713s TRACE mutant{id=213}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(None)", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1881.054000602s DEBUG mutant{id=213}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1881.054188392s TRACE mutant{id=214}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Hello::set_password", return_type: "", span: Span(214, 5, 224, 6) }), replacement: "()", genre: FnValue, span: Span(215, 9, 223, 58), package_name: "faktory" } -1881.054273270s DEBUG mutant{id=214}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1883.561294506s DEBUG mutant{id=214}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=2.507029325s -1883.561481005s DEBUG mutant{id=214}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1897.170113822s DEBUG mutant{id=214}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.608666249s -1897.170158380s TRACE mutant{id=214}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Hello::set_password", return_type: "", span: Span(214, 5, 224, 6) }), replacement: "()", genre: FnValue, span: Span(215, 9, 223, 58), package_name: "faktory" } -1897.171831632s DEBUG mutant{id=214}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1897.171988464s TRACE mutant{id=215}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::reconnect", return_type: "-> io::Result", span: Span(38, 5, 41, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(39, 9, 40, 41), package_name: "faktory" } -1897.172095783s DEBUG mutant{id=215}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1897.624350776s DEBUG mutant{id=215}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.274558ms -1897.624435282s TRACE mutant{id=215}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::reconnect", return_type: "-> io::Result", span: Span(38, 5, 41, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(39, 9, 40, 41), package_name: "faktory" } -1897.626058918s DEBUG mutant{id=215}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1897.626503870s TRACE mutant{id=216}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(190, 63, 190, 64), package_name: "faktory" } -1897.626686829s DEBUG mutant{id=216}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1900.284993199s DEBUG mutant{id=216}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=2.658324975s -1900.285090436s DEBUG mutant{id=216}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1903.599356803s DEBUG mutant{id=216}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.314290112s -1903.599394771s TRACE mutant{id=216}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(190, 63, 190, 64), package_name: "faktory" } -1903.600472961s DEBUG mutant{id=216}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1903.600566458s TRACE mutant{id=217}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::add", return_type: "-> Result, Error>", span: Span(21, 5, 29, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(27, 9, 28, 47), package_name: "faktory" } -1903.600627852s DEBUG mutant{id=217}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1905.257641305s DEBUG mutant{id=217}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.657021979s -1905.257872865s DEBUG mutant{id=217}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1919.452548481s DEBUG mutant{id=217}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.19472705s -1919.452590994s TRACE mutant{id=217}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::add", return_type: "-> Result, Error>", span: Span(21, 5, 29, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(27, 9, 28, 47), package_name: "faktory" } -1919.454286739s DEBUG mutant{id=217}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1919.454777377s TRACE mutant{id=218}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::new()))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1919.455195499s DEBUG mutant{id=218}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1919.757263818s DEBUG mutant{id=218}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.096417ms -1919.757422033s TRACE mutant{id=218}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::new()))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1919.759030093s DEBUG mutant{id=218}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1919.759459930s TRACE mutant{id=219}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::new()))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1919.765867948s DEBUG mutant{id=219}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1920.067708472s DEBUG mutant{id=219}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.864469ms -1920.067797240s TRACE mutant{id=219}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::new()))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1920.069375080s DEBUG mutant{id=219}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1920.069616336s TRACE mutant{id=220}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } -1920.069827538s DEBUG mutant{id=220}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1920.522289571s DEBUG mutant{id=220}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.481038ms -1920.522321245s TRACE mutant{id=220}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } -1920.523214714s DEBUG mutant{id=220}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1920.523447556s TRACE mutant{id=221}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::from(Ok(())))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -1920.523541792s DEBUG mutant{id=221}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1920.774949190s DEBUG mutant{id=221}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.415282ms -1920.775084480s TRACE mutant{id=221}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::from(Ok(())))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -1920.777146465s DEBUG mutant{id=221}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1920.777629626s TRACE mutant{id=222}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(250, 5, 252, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(251, 9, 251, 29), package_name: "faktory" } -1920.777826388s DEBUG mutant{id=222}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1921.029594407s DEBUG mutant{id=222}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.795144ms -1921.029632254s TRACE mutant{id=222}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(250, 5, 252, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(251, 9, 251, 29), package_name: "faktory" } -1921.031394093s DEBUG mutant{id=222}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1921.031558191s TRACE mutant{id=223}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::save_last_result", return_type: "", span: Span(22, 5, 24, 6) }), replacement: "()", genre: FnValue, span: Span(23, 9, 23, 41), package_name: "faktory" } -1921.031674594s DEBUG mutant{id=223}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1922.736949439s DEBUG mutant{id=223}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.705296548s -1922.736993578s DEBUG mutant{id=223}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1937.076298311s DEBUG mutant{id=223}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.339317785s -1937.076340647s TRACE mutant{id=223}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::save_last_result", return_type: "", span: Span(22, 5, 24, 6) }), replacement: "()", genre: FnValue, span: Span(23, 9, 23, 41), package_name: "faktory" } -1937.077961261s DEBUG mutant{id=223}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1937.078162320s TRACE mutant{id=224}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(15, 5, 27, 12), package_name: "faktory" } -1937.078299134s DEBUG mutant{id=224}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1937.280219827s DEBUG mutant{id=224}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.941143ms -1937.280280639s TRACE mutant{id=224}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(15, 5, 27, 12), package_name: "faktory" } -1937.281397539s DEBUG mutant{id=224}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1937.281660195s TRACE mutant{id=225}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1937.281773698s DEBUG mutant{id=225}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1938.987738459s DEBUG mutant{id=225}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.705977964s -1938.987816793s DEBUG mutant{id=225}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1953.193410886s DEBUG mutant{id=225}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.205605296s -1953.193469743s TRACE mutant{id=225}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1953.196169499s DEBUG mutant{id=225}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1953.196694526s TRACE mutant{id=226}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_job", return_type: "-> Result<(), Failed>", span: Span(169, 5, 175, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(170, 9, 174, 60), package_name: "faktory" } -1953.196948813s DEBUG mutant{id=226}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1955.053450801s DEBUG mutant{id=226}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.85652373s -1955.053526995s DEBUG mutant{id=226}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1958.468092454s DEBUG mutant{id=226}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.414589867s -1958.468144261s TRACE mutant{id=226}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_job", return_type: "-> Result<(), Failed>", span: Span(169, 5, 175, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(170, 9, 174, 60), package_name: "faktory" } -1958.470475173s DEBUG mutant{id=226}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1958.470986245s TRACE mutant{id=227}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(269, 5, 274, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(270, 9, 273, 40), package_name: "faktory" } -1958.471304467s DEBUG mutant{id=227}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1960.327917621s DEBUG mutant{id=227}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.856639547s -1960.328075821s DEBUG mutant{id=227}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1974.772169664s DEBUG mutant{id=227}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.444123185s -1974.772311965s TRACE mutant{id=227}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(269, 5, 274, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(270, 9, 273, 40), package_name: "faktory" } -1974.775850375s DEBUG mutant{id=227}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1974.776363945s TRACE mutant{id=228}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Progress::update_builder", return_type: "-> ProgressUpdateBuilder", span: Span(152, 5, 155, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(154, 9, 154, 53), package_name: "faktory" } -1974.776708829s DEBUG mutant{id=228}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1975.029088465s DEBUG mutant{id=228}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.420782ms -1975.029128079s TRACE mutant{id=228}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Progress::update_builder", return_type: "-> ProgressUpdateBuilder", span: Span(152, 5, 155, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(154, 9, 154, 53), package_name: "faktory" } -1975.031054673s DEBUG mutant{id=228}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1975.031527928s TRACE mutant{id=229}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(206, 21, 206, 23), package_name: "faktory" } -1975.031767757s DEBUG mutant{id=229}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1976.887196889s DEBUG mutant{id=229}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.855451191s -1976.887329251s DEBUG mutant{id=229}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1980.352105761s DEBUG mutant{id=229}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.464801432s -1980.352187850s TRACE mutant{id=229}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(206, 21, 206, 23), package_name: "faktory" } -1980.353334185s DEBUG mutant{id=229}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1980.353432723s TRACE mutant{id=230}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_running", return_type: "", span: Span(47, 5, 49, 6) }), replacement: "()", genre: FnValue, span: Span(48, 9, 48, 77), package_name: "faktory" } -1980.353498721s DEBUG mutant{id=230}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -1982.009458575s DEBUG mutant{id=230}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.655970813s -1982.009610449s DEBUG mutant{id=230}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2052.020081327s DEBUG mutant{id=230}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.010486643s -2052.020131273s DEBUG mutant{id=230}:run{phase=Test}:terminate_child{pid=285537}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -2052.020198116s TRACE mutant{id=230}:run{phase=Test}:terminate_child{pid=285537}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -2052.023397191s DEBUG mutant{id=230}:run{phase=Test}:terminate_child{pid=285537}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -2052.023430344s DEBUG mutant{id=230}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.013850472s -2052.023471478s TRACE mutant{id=230}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_running", return_type: "", span: Span(47, 5, 49, 6) }), replacement: "()", genre: FnValue, span: Span(48, 9, 48, 77), package_name: "faktory" } -2052.024579966s DEBUG mutant{id=230}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -2052.024698394s TRACE mutant{id=231}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_failure", return_type: "", span: Span(58, 5, 63, 6) }), replacement: "()", genre: FnValue, span: Span(59, 9, 62, 47), package_name: "faktory" } -2052.030555447s DEBUG mutant{id=231}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2053.485637776s DEBUG mutant{id=231}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.455116684s -2053.485676573s DEBUG mutant{id=231}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2067.877305662s DEBUG mutant{id=231}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.391638182s -2067.877368038s TRACE mutant{id=231}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_failure", return_type: "", span: Span(58, 5, 63, 6) }), replacement: "()", genre: FnValue, span: Span(59, 9, 62, 47), package_name: "faktory" } -2067.878382737s DEBUG mutant{id=231}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2067.878493033s TRACE mutant{id=232}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::id", return_type: "-> &BatchId", span: Span(12, 5, 15, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(14, 9, 14, 18), package_name: "faktory" } -2067.878568792s DEBUG mutant{id=232}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2068.080047650s DEBUG mutant{id=232}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.490771ms -2068.080112701s TRACE mutant{id=232}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::id", return_type: "-> &BatchId", span: Span(12, 5, 15, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(14, 9, 14, 18), package_name: "faktory" } -2068.080966642s DEBUG mutant{id=232}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2068.081042595s TRACE mutant{id=233}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_jid", return_type: "-> String", span: Span(14, 1, 16, 2) }), replacement: "String::new()", genre: FnValue, span: Span(15, 5, 15, 33), package_name: "faktory" } -2068.081088939s DEBUG mutant{id=233}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2069.685673739s DEBUG mutant{id=233}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.604592256s -2069.685815471s DEBUG mutant{id=233}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2073.049251002s DEBUG mutant{id=233}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.363465489s -2073.049280512s TRACE mutant{id=233}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_jid", return_type: "-> String", span: Span(14, 1, 16, 2) }), replacement: "String::new()", genre: FnValue, span: Span(15, 5, 15, 33), package_name: "faktory" } -2073.050285675s DEBUG mutant{id=233}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2073.050384257s TRACE mutant{id=234}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(31, 63, 31, 65), package_name: "faktory" } -2073.050446181s DEBUG mutant{id=234}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2074.405127675s DEBUG mutant{id=234}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.354689991s -2074.405288397s DEBUG mutant{id=234}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2144.445325025s DEBUG mutant{id=234}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=70.040051997s -2144.445374231s DEBUG mutant{id=234}:run{phase=Test}:terminate_child{pid=291445}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -2144.445434996s TRACE mutant{id=234}:run{phase=Test}:terminate_child{pid=291445}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -2144.448749787s DEBUG mutant{id=234}:run{phase=Test}:terminate_child{pid=291445}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -2144.448780812s DEBUG mutant{id=234}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=70.043521636s -2144.448815642s TRACE mutant{id=234}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(31, 63, 31, 65), package_name: "faktory" } -2144.449698031s DEBUG mutant{id=234}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -2144.449904894s TRACE mutant{id=235}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::add_to_custom_data", return_type: "-> &mut Self", span: Span(175, 5, 184, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(181, 9, 183, 13), package_name: "faktory" } -2144.449996965s DEBUG mutant{id=235}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2144.701514463s DEBUG mutant{id=235}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.525275ms -2144.701556097s TRACE mutant{id=235}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::add_to_custom_data", return_type: "-> &mut Self", span: Span(175, 5, 184, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(181, 9, 183, 13), package_name: "faktory" } -2144.702959788s DEBUG mutant{id=235}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2144.703112754s TRACE mutant{id=236}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::new())", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -2144.703204223s DEBUG mutant{id=236}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2144.905249429s DEBUG mutant{id=236}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=202.060258ms -2144.905280551s TRACE mutant{id=236}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::new())", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -2144.906514415s DEBUG mutant{id=236}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2144.906799171s TRACE mutant{id=237}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::new(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2144.906920015s DEBUG mutant{id=237}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2145.158192104s DEBUG mutant{id=237}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.285416ms -2145.158303404s TRACE mutant{id=237}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::new(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2145.160517890s DEBUG mutant{id=237}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2145.160815369s TRACE mutant{id=238}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_for", return_type: "-> &mut Self", span: Span(49, 5, 61, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(60, 9, 60, 52), package_name: "faktory" } -2145.160983240s DEBUG mutant{id=238}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2145.362709572s DEBUG mutant{id=238}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.748889ms -2145.362774138s TRACE mutant{id=238}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_for", return_type: "-> &mut Self", span: Span(49, 5, 61, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(60, 9, 60, 52), package_name: "faktory" } -2145.363996526s DEBUG mutant{id=238}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2145.364174598s TRACE mutant{id=239}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from(Ok(0))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2145.364263025s DEBUG mutant{id=239}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2145.766198010s DEBUG mutant{id=239}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=401.949235ms -2145.766252830s TRACE mutant{id=239}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from(Ok(0))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2145.766941930s DEBUG mutant{id=239}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2145.767077170s TRACE mutant{id=240}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "%", genre: BinaryOperator, span: Span(110, 38, 110, 39), package_name: "faktory" } -2145.767168911s DEBUG mutant{id=240}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2147.222298525s DEBUG mutant{id=240}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.455136187s -2147.222345395s DEBUG mutant{id=240}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2161.515431185s DEBUG mutant{id=240}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.293097454s -2161.515523448s TRACE mutant{id=240}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "%", genre: BinaryOperator, span: Span(110, 38, 110, 39), package_name: "faktory" } -2161.516930568s DEBUG mutant{id=240}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2161.517109676s TRACE mutant{id=241}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::wid", return_type: "-> &mut Self", span: Span(41, 5, 47, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(45, 9, 46, 13), package_name: "faktory" } -2161.517192861s DEBUG mutant{id=241}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2163.272479590s DEBUG mutant{id=241}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.755295721s -2163.272568087s DEBUG mutant{id=241}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2176.860672239s DEBUG mutant{id=241}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.588132877s -2176.860744775s TRACE mutant{id=241}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::wid", return_type: "-> &mut Self", span: Span(41, 5, 47, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(45, 9, 46, 13), package_name: "faktory" } -2176.861824840s DEBUG mutant{id=241}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2176.862068288s TRACE mutant{id=242}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(39, 41, 39, 43), package_name: "faktory" } -2176.862162551s DEBUG mutant{id=242}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2179.017977127s DEBUG mutant{id=242}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=2.15582452s -2179.018062452s DEBUG mutant{id=242}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2182.528601363s DEBUG mutant{id=242}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.510560921s -2182.528637804s TRACE mutant{id=242}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(39, 41, 39, 43), package_name: "faktory" } -2182.529713349s DEBUG mutant{id=242}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2182.529929731s TRACE mutant{id=243}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::for_worker", return_type: "-> Result", span: Span(284, 5, 291, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(285, 9, 290, 11), package_name: "faktory" } -2182.530018492s DEBUG mutant{id=243}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2182.781460806s DEBUG mutant{id=243}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.450532ms -2182.781568864s TRACE mutant{id=243}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::for_worker", return_type: "-> Result", span: Span(284, 5, 291, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(285, 9, 290, 11), package_name: "faktory" } -2182.784151758s DEBUG mutant{id=243}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2182.784725154s TRACE mutant{id=244}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::new()]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2182.784970713s DEBUG mutant{id=244}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2183.036965397s DEBUG mutant{id=244}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.021617ms -2183.036991757s TRACE mutant{id=244}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::new()]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2183.038093641s DEBUG mutant{id=244}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2183.038290614s TRACE mutant{id=245}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::build", return_type: "-> Job", span: Span(186, 5, 199, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(194, 9, 198, 58), package_name: "faktory" } -2183.038383137s DEBUG mutant{id=245}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2183.239567527s DEBUG mutant{id=245}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.192763ms -2183.239639949s TRACE mutant{id=245}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::build", return_type: "-> Job", span: Span(186, 5, 199, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(194, 9, 198, 58), package_name: "faktory" } -2183.240788898s DEBUG mutant{id=245}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2183.240899956s TRACE mutant{id=246}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::new(Default::default())))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } -2183.240965809s DEBUG mutant{id=246}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2183.442140425s DEBUG mutant{id=246}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.18529ms -2183.442193727s TRACE mutant{id=246}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::new(Default::default())))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } -2183.443341815s DEBUG mutant{id=246}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2183.443549902s TRACE mutant{id=247}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::args", return_type: "-> &mut Self", span: Span(165, 5, 173, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(171, 9, 172, 13), package_name: "faktory" } -2183.443656124s DEBUG mutant{id=247}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2183.644622985s DEBUG mutant{id=247}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=200.977475ms -2183.644656230s TRACE mutant{id=247}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::args", return_type: "-> &mut Self", span: Span(165, 5, 173, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(171, 9, 172, 13), package_name: "faktory" } -2183.646177725s DEBUG mutant{id=247}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2183.646302671s TRACE mutant{id=248}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_last_result", return_type: "-> Option>", span: Span(14, 5, 16, 6) }), replacement: "None", genre: FnValue, span: Span(15, 9, 15, 36), package_name: "faktory" } -2183.646401035s DEBUG mutant{id=248}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2185.351652445s DEBUG mutant{id=248}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.70526683s -2185.351706833s DEBUG mutant{id=248}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2199.698733366s DEBUG mutant{id=248}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.347039784s -2199.698786787s TRACE mutant{id=248}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_last_result", return_type: "-> Option>", span: Span(14, 5, 16, 6) }), replacement: "None", genre: FnValue, span: Span(15, 9, 15, 36), package_name: "faktory" } -2199.701130968s DEBUG mutant{id=248}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2199.701726805s TRACE mutant{id=249}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_one", return_type: "-> Result", span: Span(244, 5, 276, 6) }), replacement: "Ok(false)", genre: FnValue, span: Span(249, 9, 275, 17), package_name: "faktory" } -2199.702025866s DEBUG mutant{id=249}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2201.808620734s DEBUG mutant{id=249}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=2.106621902s -2201.808719234s DEBUG mutant{id=249}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2215.492508095s DEBUG mutant{id=249}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.683804148s -2215.492583037s TRACE mutant{id=249}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_one", return_type: "-> Result", span: Span(244, 5, 276, 6) }), replacement: "Ok(false)", genre: FnValue, span: Span(249, 9, 275, 17), package_name: "faktory" } -2215.496105556s DEBUG mutant{id=249}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2215.496501553s TRACE mutant{id=250}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "/", genre: BinaryOperator, span: Span(109, 36, 109, 37), package_name: "faktory" } -2215.496728321s DEBUG mutant{id=250}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2217.553384727s DEBUG mutant{id=250}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=2.056687898s -2217.553457021s DEBUG mutant{id=250}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2232.092322424s DEBUG mutant{id=250}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.538873971s -2232.092399389s TRACE mutant{id=250}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "/", genre: BinaryOperator, span: Span(109, 36, 109, 37), package_name: "faktory" } -2232.094220820s DEBUG mutant{id=250}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2232.094408600s TRACE mutant{id=251}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::from(Default::default())))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -2232.094550043s DEBUG mutant{id=251}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2232.346067908s DEBUG mutant{id=251}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.535168ms -2232.346094737s TRACE mutant{id=251}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::from(Default::default())))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -2232.347504975s DEBUG mutant{id=251}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2232.347646302s TRACE mutant{id=252}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdateBuilder::build", return_type: "-> ProgressUpdate", span: Span(57, 5, 61, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(59, 9, 60, 80), package_name: "faktory" } -2232.347733601s DEBUG mutant{id=252}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2232.699332761s DEBUG mutant{id=252}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=351.610954ms -2232.699488883s TRACE mutant{id=252}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdateBuilder::build", return_type: "-> ProgressUpdate", span: Span(57, 5, 61, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(59, 9, 60, 80), package_name: "faktory" } -2232.703591334s DEBUG mutant{id=252}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2232.704060629s TRACE mutant{id=253}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from_iter([Ok(0)])", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2232.704304902s DEBUG mutant{id=253}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2233.157365262s DEBUG mutant{id=253}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=453.093988ms -2233.157398338s TRACE mutant{id=253}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from_iter([Ok(0)])", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2233.158705308s DEBUG mutant{id=253}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2233.158802137s TRACE mutant{id=254}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::run", return_type: "-> Result<(), E>", span: Span(75, 5, 77, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(76, 9, 76, 24), package_name: "faktory" } -2233.158870897s DEBUG mutant{id=254}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2234.763528608s DEBUG mutant{id=254}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.60466698s -2234.763633467s DEBUG mutant{id=254}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2249.702277478s DEBUG mutant{id=254}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.93867761s -2249.702329766s TRACE mutant{id=254}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::run", return_type: "-> Result<(), E>", span: Span(75, 5, 77, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(76, 9, 76, 24), package_name: "faktory" } -2249.704683768s DEBUG mutant{id=254}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2249.705125816s TRACE mutant{id=255}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::failure", return_type: "-> &Option", span: Span(258, 5, 261, 6) }), replacement: "&None", genre: FnValue, span: Span(260, 9, 260, 22), package_name: "faktory" } -2249.705327576s DEBUG mutant{id=255}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2251.210784164s DEBUG mutant{id=255}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.505473982s -2251.211039066s DEBUG mutant{id=255}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2265.809982834s DEBUG mutant{id=255}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.598982656s -2265.810050899s TRACE mutant{id=255}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::failure", return_type: "-> &Option", span: Span(258, 5, 261, 6) }), replacement: "&None", genre: FnValue, span: Span(260, 9, 260, 22), package_name: "faktory" } -2265.812723309s DEBUG mutant{id=255}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2265.813007270s TRACE mutant{id=256}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::register", return_type: "-> &mut Self", span: Span(65, 5, 78, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(76, 9, 77, 13), package_name: "faktory" } -2265.813166169s DEBUG mutant{id=256}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2267.669062521s DEBUG mutant{id=256}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.85591578s -2267.669155903s DEBUG mutant{id=256}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2271.229731045s DEBUG mutant{id=256}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.560608079s -2271.229848852s TRACE mutant{id=256}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::register", return_type: "-> &mut Self", span: Span(65, 5, 78, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(76, 9, 77, 13), package_name: "faktory" } -2271.232070141s DEBUG mutant{id=256}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2271.232239394s TRACE mutant{id=257}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(7, 5, 12, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(8, 9, 11, 40), package_name: "faktory" } -2271.232362414s DEBUG mutant{id=257}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2273.138855351s DEBUG mutant{id=257}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.906513697s -2273.139001007s DEBUG mutant{id=257}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2287.630207889s DEBUG mutant{id=257}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.491243288s -2287.630288427s TRACE mutant{id=257}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(7, 5, 12, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(8, 9, 11, 40), package_name: "faktory" } -2287.633425804s DEBUG mutant{id=257}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2287.633714426s TRACE mutant{id=258}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::deref_mut", return_type: "-> &mut Self::Target", span: Span(37, 5, 39, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(38, 9, 38, 20), package_name: "faktory" } -2287.633920756s DEBUG mutant{id=258}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2289.189361095s DEBUG mutant{id=258}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.555466454s -2289.189410571s DEBUG mutant{id=258}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2303.847929899s DEBUG mutant{id=258}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.65853085s -2303.847978296s TRACE mutant{id=258}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::deref_mut", return_type: "-> &mut Self::Target", span: Span(37, 5, 39, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(38, 9, 38, 20), package_name: "faktory" } -2303.849797590s DEBUG mutant{id=258}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2303.850242177s TRACE mutant{id=259}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_failure_to_server", return_type: "-> Result<(), Error>", span: Span(177, 5, 179, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(178, 9, 178, 47), package_name: "faktory" } -2303.850456998s DEBUG mutant{id=259}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2305.705857206s DEBUG mutant{id=259}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.855420594s -2305.705956283s DEBUG mutant{id=259}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2320.200157915s DEBUG mutant{id=259}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.494238437s -2320.200299307s TRACE mutant{id=259}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_failure_to_server", return_type: "-> Result<(), Error>", span: Span(177, 5, 179, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(178, 9, 178, 47), package_name: "faktory" } -2320.203978791s DEBUG mutant{id=259}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2320.204507795s TRACE mutant{id=260}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2320.204768073s DEBUG mutant{id=260}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2320.557012727s DEBUG mutant{id=260}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.263077ms -2320.557059230s TRACE mutant{id=260}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2320.559517434s DEBUG mutant{id=260}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2320.560101139s TRACE mutant{id=261}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::from(Default::default())]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -2320.565246759s DEBUG mutant{id=261}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2320.817523736s DEBUG mutant{id=261}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.306394ms -2320.817594411s TRACE mutant{id=261}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::from(Default::default())]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -2320.818337107s DEBUG mutant{id=261}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2320.818402066s TRACE mutant{id=262}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_success", return_type: "", span: Span(51, 5, 56, 6) }), replacement: "()", genre: FnValue, span: Span(52, 9, 55, 40), package_name: "faktory" } -2320.818441260s DEBUG mutant{id=262}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2322.473021134s DEBUG mutant{id=262}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.654586592s -2322.473060979s DEBUG mutant{id=262}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2336.862545490s DEBUG mutant{id=262}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.389493447s -2336.862646085s TRACE mutant{id=262}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_success", return_type: "", span: Span(51, 5, 56, 6) }), replacement: "()", genre: FnValue, span: Span(52, 9, 55, 40), package_name: "faktory" } -2336.865577401s DEBUG mutant{id=262}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2336.866084791s TRACE mutant{id=263}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::issue", return_type: "-> Result<(), Error>", span: Span(162, 5, 166, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(163, 9, 165, 40), package_name: "faktory" } -2336.866402100s DEBUG mutant{id=263}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2338.521877909s DEBUG mutant{id=263}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.655511157s -2338.521949485s DEBUG mutant{id=263}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2352.064999110s DEBUG mutant{id=263}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=13.543073685s -2352.065036309s TRACE mutant{id=263}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::issue", return_type: "-> Result<(), Error>", span: Span(162, 5, 166, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(163, 9, 165, 40), package_name: "faktory" } -2352.066793537s DEBUG mutant{id=263}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2352.066978705s TRACE mutant{id=264}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::maybe_bid", return_type: "-> Result, Error>", span: Span(52, 5, 68, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(53, 9, 67, 10), package_name: "faktory" } -2352.067086085s DEBUG mutant{id=264}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2353.772661724s DEBUG mutant{id=264}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.705595264s -2353.772737303s DEBUG mutant{id=264}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2368.320442957s DEBUG mutant{id=264}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.547729133s -2368.320470497s TRACE mutant{id=264}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::maybe_bid", return_type: "-> Result, Error>", span: Span(52, 5, 68, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(53, 9, 67, 10), package_name: "faktory" } -2368.321707313s DEBUG mutant{id=264}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2368.321986242s TRACE mutant{id=265}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::new(Ok(())))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2368.322112465s DEBUG mutant{id=265}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2368.573765552s DEBUG mutant{id=265}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.662849ms -2368.573824168s TRACE mutant{id=265}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::new(Ok(())))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2368.576282488s DEBUG mutant{id=265}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2368.576707146s TRACE mutant{id=266}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::from_iter([Ok(())]))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2368.581014097s DEBUG mutant{id=266}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2368.832965254s DEBUG mutant{id=266}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.974517ms -2368.833083665s TRACE mutant{id=266}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::from_iter([Ok(())]))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2368.834015517s DEBUG mutant{id=266}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2368.834134553s TRACE mutant{id=267}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdate::builder", return_type: "-> ProgressUpdateBuilder", span: Span(47, 5, 53, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(52, 9, 52, 40), package_name: "faktory" } -2368.834194075s DEBUG mutant{id=267}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2369.035224980s DEBUG mutant{id=267}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.039872ms -2369.035309747s TRACE mutant{id=267}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdate::builder", return_type: "-> ProgressUpdateBuilder", span: Span(47, 5, 53, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(52, 9, 52, 40), package_name: "faktory" } -2369.036999049s DEBUG mutant{id=267}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2369.037455483s TRACE mutant{id=268}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(305, 57, 305, 59), package_name: "faktory" } -2369.037655788s DEBUG mutant{id=268}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2370.642726897s DEBUG mutant{id=268}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.605089415s -2370.642792560s DEBUG mutant{id=268}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2374.201889494s DEBUG mutant{id=268}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.559105206s -2374.201994710s TRACE mutant{id=268}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(305, 57, 305, 59), package_name: "faktory" } -2374.204439607s DEBUG mutant{id=268}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2374.204771738s TRACE mutant{id=269}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::reconnect", return_type: "-> io::Result", span: Span(115, 5, 124, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(116, 9, 123, 72), package_name: "faktory" } -2374.204944296s DEBUG mutant{id=269}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2374.507057306s DEBUG mutant{id=269}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.137942ms -2374.507102623s TRACE mutant{id=269}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::reconnect", return_type: "-> io::Result", span: Span(115, 5, 124, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(116, 9, 123, 72), package_name: "faktory" } -2374.508997266s DEBUG mutant{id=269}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2374.509409387s TRACE mutant{id=270}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(194, 49, 194, 50), package_name: "faktory" } -2374.509579658s DEBUG mutant{id=270}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2376.365520235s DEBUG mutant{id=270}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.855963056s -2376.365665683s DEBUG mutant{id=270}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2390.912996770s DEBUG mutant{id=270}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.547364993s -2390.913074595s TRACE mutant{id=270}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(194, 49, 194, 50), package_name: "faktory" } -2390.914638280s DEBUG mutant{id=270}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2390.914934187s TRACE mutant{id=271}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::build", return_type: "-> Batch", span: Span(168, 5, 170, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(169, 9, 169, 65), package_name: "faktory" } -2390.915097702s DEBUG mutant{id=271}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2391.166560332s DEBUG mutant{id=271}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.47779ms -2391.166603702s TRACE mutant{id=271}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::build", return_type: "-> Batch", span: Span(168, 5, 170, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(169, 9, 169, 65), package_name: "faktory" } -2391.168995881s DEBUG mutant{id=271}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2391.169332046s TRACE mutant{id=272}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::deref", return_type: "-> &Self::Target", span: Span(236, 5, 238, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(237, 9, 237, 16), package_name: "faktory" } -2391.169514500s DEBUG mutant{id=272}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2391.471635928s DEBUG mutant{id=272}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.143463ms -2391.471696254s TRACE mutant{id=272}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::deref", return_type: "-> &Self::Target", span: Span(236, 5, 238, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(237, 9, 237, 16), package_name: "faktory" } -2391.474339761s DEBUG mutant{id=272}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2391.474782638s TRACE mutant{id=273}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::info", return_type: "-> Result", span: Span(362, 5, 371, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(366, 9, 370, 74), package_name: "faktory" } -2391.474986668s DEBUG mutant{id=273}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2393.431466215s DEBUG mutant{id=273}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.956515913s -2393.431622018s DEBUG mutant{id=273}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2408.029453497s DEBUG mutant{id=273}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.597859245s -2408.029498384s TRACE mutant{id=273}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::info", return_type: "-> Result", span: Span(362, 5, 371, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(366, 9, 370, 74), package_name: "faktory" } -2408.031631076s DEBUG mutant{id=273}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2408.032144205s TRACE mutant{id=274}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::new())", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2408.032426873s DEBUG mutant{id=274}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2408.334266160s DEBUG mutant{id=274}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.866766ms -2408.334352818s TRACE mutant{id=274}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::new())", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2408.335683487s DEBUG mutant{id=274}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2408.335819507s TRACE mutant{id=275}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } -2408.335872805s DEBUG mutant{id=275}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2408.787391739s DEBUG mutant{id=275}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=451.526281ms -2408.787439664s TRACE mutant{id=275}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } -2408.789517863s DEBUG mutant{id=275}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2408.789671959s TRACE mutant{id=276}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_jid", return_type: "-> String", span: Span(14, 1, 16, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(15, 5, 15, 33), package_name: "faktory" } -2408.789776975s DEBUG mutant{id=276}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2410.495222414s DEBUG mutant{id=276}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.705464113s -2410.495300560s DEBUG mutant{id=276}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features -2413.856846274s DEBUG mutant{id=276}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=3.361567201s -2413.856968360s TRACE mutant{id=276}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_jid", return_type: "-> String", span: Span(14, 1, 16, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(15, 5, 15, 33), package_name: "faktory" } -2413.859410047s DEBUG mutant{id=276}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2413.859440808s TRACE cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:133: no more work diff --git a/mutants.out.old/lock.json b/mutants.out.old/lock.json deleted file mode 100644 index adca299b..00000000 --- a/mutants.out.old/lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cargo_mutants_version": "24.3.0", - "start_time": "2024-04-08T10:53:20.110706728Z", - "hostname": "rustworthy", - "username": "pavel" -} \ No newline at end of file diff --git a/mutants.out.old/log/baseline.log b/mutants.out.old/log/baseline.log deleted file mode 100644 index 9bde4d27..00000000 --- a/mutants.out.old/log/baseline.log +++ /dev/null @@ -1,256 +0,0 @@ - -*** baseline - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling proc-macro2 v1.0.79 - Compiling unicode-ident v1.0.12 - Compiling libc v0.2.153 - Compiling syn v1.0.109 - Compiling autocfg v1.1.0 - Compiling cc v1.0.90 - Compiling cfg-if v1.0.0 - Compiling vcpkg v0.2.15 - Compiling pkg-config v0.3.30 - Compiling version_check v0.9.4 - Compiling typenum v1.17.0 - Compiling itoa v1.0.10 - Compiling ident_case v1.0.1 - Compiling fnv v1.0.7 - Compiling thiserror v1.0.58 - Compiling strsim v0.10.0 - Compiling pin-project-lite v0.2.13 - Compiling serde v1.0.197 - Compiling foreign-types-shared v0.1.1 - Compiling tinyvec_macros v0.1.1 - Compiling unicode-xid v0.2.4 - Compiling utf8parse v0.2.1 - Compiling memchr v2.7.1 - Compiling minimal-lexical v0.2.1 - Compiling powerfmt v0.2.0 - Compiling time-core v0.1.2 - Compiling openssl v0.10.64 - Compiling bytes v1.5.0 - Compiling num-conv v0.1.0 - Compiling once_cell v1.19.0 - Compiling colorchoice v1.0.0 - Compiling anstyle v1.0.6 - Compiling bitflags v2.5.0 - Compiling foreign-types v0.3.2 - Compiling anstyle-parse v0.2.3 - Compiling tinyvec v1.6.0 - Compiling anstyle-query v1.0.2 - Compiling native-tls v0.2.11 - Compiling clap_lex v0.7.0 - Compiling percent-encoding v2.3.1 - Compiling log v0.4.21 - Compiling strsim v0.11.0 - Compiling ppv-lite86 v0.2.17 - Compiling unicode-bidi v0.3.15 - Compiling async-trait v0.1.78 - Compiling time-macros v0.2.17 - Compiling openssl-probe v0.1.5 - Compiling deranged v0.3.11 - Compiling anstream v0.6.13 - Compiling serde_json v1.0.114 - Compiling form_urlencoded v1.2.1 - Compiling oid-registry v0.6.1 - Compiling match_cfg v0.1.0 - Compiling futures-core v0.3.30 - Compiling ryu v1.0.17 - Compiling iana-time-zone v0.1.60 - Compiling cpufeatures v0.2.12 - Compiling lazy_static v1.4.0 - Compiling data-encoding v2.5.0 - Compiling generic-array v0.14.7 - Compiling num-traits v0.2.18 - Compiling num-bigint v0.4.4 - Compiling clap_builder v4.5.2 - Compiling nom v7.1.3 - Compiling quote v1.0.35 - Compiling openssl-sys v0.9.102 - Compiling unicode-normalization v0.1.23 - Compiling syn v2.0.53 - Compiling mio v0.8.11 - Compiling socket2 v0.5.6 - Compiling num_cpus v1.16.0 - Compiling getrandom v0.2.12 - Compiling hostname v0.3.1 - Compiling idna v0.5.0 - Compiling rand_core v0.6.4 - Compiling num-integer v0.1.46 - Compiling rand_chacha v0.3.1 - Compiling time v0.3.34 - Compiling url v2.5.0 - Compiling rand v0.8.5 - Compiling block-buffer v0.10.4 - Compiling crypto-common v0.1.6 - Compiling digest v0.10.7 - Compiling sha2 v0.10.8 - Compiling rusticata-macros v4.1.0 - Compiling chrono v0.4.35 - Compiling clap v4.5.3 - Compiling thiserror-impl v1.0.58 - Compiling tokio-macros v2.2.0 - Compiling openssl-macros v0.1.1 - Compiling displaydoc v0.2.4 - Compiling pin-project-internal v1.1.5 - Compiling async-stream-impl v0.3.5 - Compiling serde_derive v1.0.197 - Compiling darling_core v0.14.4 - Compiling synstructure v0.12.6 - Compiling async-stream v0.3.5 - Compiling tokio v1.36.0 - Compiling asn1-rs-impl v0.1.0 - Compiling asn1-rs-derive v0.4.0 - Compiling pin-project v1.1.5 - Compiling darling_macro v0.14.4 - Compiling asn1-rs v0.5.2 - Compiling darling v0.14.4 - Compiling derive_builder_core v0.12.0 - Compiling der-parser v8.2.0 - Compiling derive_builder_macro v0.12.0 - Compiling x509-parser v0.15.1 - Compiling derive_builder v0.12.0 - Compiling tokio-native-tls v0.3.1 - Compiling tokio-stream v0.1.15 - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Compiling tokio-test v0.4.4 - Finished dev [unoptimized + debuginfo] target(s) in 6.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.04s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test enterprise::ent_expiring_job ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_worker ... ok -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test community::fail ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_36.log b/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_36.log deleted file mode 100644 index 213f5268..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_36.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:109:36: replace * with + in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace * with + in main -@@ -101,17 +101,17 @@ - - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -+ let stop_secs = stop.as_secs() + /* ~ changed by cargo-mutants ~ */ 1_000_000_000 + u64::from(stop.subsec_nanos()); - let stop_secs = stop_secs as f64 / 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.50s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::multi ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_36_001.log b/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_36_001.log deleted file mode 100644 index b7679ec8..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_36_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:109:36: replace * with / in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace * with / in main -@@ -101,17 +101,17 @@ - - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -+ let stop_secs = stop.as_secs() / /* ~ changed by cargo-mutants ~ */ 1_000_000_000 + u64::from(stop.subsec_nanos()); - let stop_secs = stop_secs as f64 / 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 2.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.40s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_client ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.68s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_52.log b/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_52.log deleted file mode 100644 index f8d369fb..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_52.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:109:52: replace + with - in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace + with - in main -@@ -101,17 +101,17 @@ - - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -+ let stop_secs = stop.as_secs() * 1_000_000_000 - /* ~ changed by cargo-mutants ~ */ u64::from(stop.subsec_nanos()); - let stop_secs = stop_secs as f64 / 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.42s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.96s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batches_can_be_nested ... ok -test community::queue ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_worker ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_52_001.log b/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_52_001.log deleted file mode 100644 index ef024d8e..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_109_col_52_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:109:52: replace + with * in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace + with * in main -@@ -101,17 +101,17 @@ - - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -+ let stop_secs = stop.as_secs() * 1_000_000_000 * /* ~ changed by cargo-mutants ~ */ u64::from(stop.subsec_nanos()); - let stop_secs = stop_secs as f64 / 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.93s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.24s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_worker ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::multi ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_expiring_job ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_110_col_38.log b/mutants.out.old/log/src__bin__loadtest.rs_line_110_col_38.log deleted file mode 100644 index abbb9eab..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_110_col_38.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:110:38: replace / with * in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace / with * in main -@@ -102,17 +102,17 @@ - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - - let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -- let stop_secs = stop_secs as f64 / 1_000_000_000.0; -+ let stop_secs = stop_secs as f64 * /* ~ changed by cargo-mutants ~ */ 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - println!("{:?}", _ops_count); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test community::queue ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_worker ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_client ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::enqueue_job ... ok -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_110_col_38_001.log b/mutants.out.old/log/src__bin__loadtest.rs_line_110_col_38_001.log deleted file mode 100644 index 05dec35b..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_110_col_38_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:110:38: replace / with % in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace / with % in main -@@ -102,17 +102,17 @@ - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - - let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -- let stop_secs = stop_secs as f64 / 1_000_000_000.0; -+ let stop_secs = stop_secs as f64 % /* ~ changed by cargo-mutants ~ */ 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - println!("{:?}", _ops_count); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.44s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::fail ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_client ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::enqueue_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_15_col_5.log b/mutants.out.old/log/src__bin__loadtest.rs_line_15_col_5.log deleted file mode 100644 index 9bc18e5e..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_15_col_5.log +++ /dev/null @@ -1,264 +0,0 @@ - -*** src/bin/loadtest.rs:15:5: replace main with () - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace main with () -@@ -7,113 +7,10 @@ - use std::sync::{self, atomic}; - use std::time; - use tokio::task; - - const QUEUES: &[&str] = &["queue0", "queue1", "queue2", "queue3", "queue4"]; - - #[tokio::main] - async fn main() { -- let matches = Command::new("My Super Program (Async)") -- .version("0.1") -- .about("Benchmark the performance of Rust Faktory async workers and client") -- .arg( -- Arg::new("jobs") -- .help("Number of jobs to run") -- .value_parser(value_parser!(usize)) -- .index(1) -- .default_value("30000"), -- ) -- .arg( -- Arg::new("threads") -- .help("Number of workers/clients to run") -- .value_parser(value_parser!(usize)) -- .index(2) -- .default_value("10"), -- ) -- .get_matches(); -- -- let jobs: usize = *matches.get_one("jobs").expect("default_value is set"); -- let threads: usize = *matches.get_one("threads").expect("default_value is set"); -- println!( -- "Running loadtest with {} jobs and {} threads", -- jobs, threads -- ); -- -- // ensure that we can actually connect to the server; -- // will create a client, run a handshake with Faktory, -- // and drop the cliet immediately afterwards; -- if let Err(e) = Client::connect(None).await { -- println!("{}", e); -- process::exit(1); -- } -- -- let pushed = sync::Arc::new(atomic::AtomicUsize::new(0)); -- let popped = sync::Arc::new(atomic::AtomicUsize::new(0)); -- -- let start = time::Instant::now(); -- -- let mut set = task::JoinSet::new(); -- for _ in 0..threads { -- let pushed = sync::Arc::clone(&pushed); -- let popped = sync::Arc::clone(&popped); -- set.spawn(async move { -- // make producer and consumer -- let mut p = Client::connect(None).await.unwrap(); -- let mut c = WorkerBuilder::default(); -- c.register("SomeJob", |_| { -- Box::pin(async move { -- let mut rng = rand::thread_rng(); -- if rng.gen_bool(0.01) { -- Err(io::Error::new(io::ErrorKind::Other, "worker closed")) -- } else { -- Ok(()) -- } -- }) -- }); -- let mut c = c.connect(None).await.unwrap(); -- -- let mut rng = rand::rngs::OsRng; -- let mut random_queues = Vec::from(QUEUES); -- random_queues.shuffle(&mut rng); -- for idx in 0..jobs { -- if idx % 2 == 0 { -- // push -- let mut job = Job::new( -- "SomeJob", -- vec![serde_json::Value::from(1), "string".into(), 3.into()], -- ); -- job.priority = Some(rng.gen_range(1..10)); -- job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); -- p.enqueue(job).await?; -- if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { -- return Ok::(idx); -- } -- } else { -- // pop -- c.run_one(0, &random_queues[..]).await?; -- if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { -- return Ok(idx); -- } -- } -- } -- Ok(jobs) -- }); -- } -- -- let mut _ops_count = Vec::with_capacity(threads); -- while let Some(res) = set.join_next().await { -- _ops_count.push(res.unwrap()) -- } -- -- let stop = start.elapsed(); -- -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -- let stop_secs = stop_secs as f64 / 1_000_000_000.0; -- println!( -- "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", -- pushed.load(atomic::Ordering::SeqCst), -- popped.load(atomic::Ordering::SeqCst), -- stop_secs, -- jobs as f64 / stop_secs, -- ); -- println!("{:?}", _ops_count); -+ () /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.41s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::fail ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_24.log b/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_24.log deleted file mode 100644 index 7a1a9c54..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_24.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:78:24: replace % with / in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace % with / in main -@@ -70,17 +70,17 @@ - }) - }); - let mut c = c.connect(None).await.unwrap(); - - let mut rng = rand::rngs::OsRng; - let mut random_queues = Vec::from(QUEUES); - random_queues.shuffle(&mut rng); - for idx in 0..jobs { -- if idx % 2 == 0 { -+ if idx / /* ~ changed by cargo-mutants ~ */ 2 == 0 { - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.27s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.05s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::multi ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok -test community::hello_worker ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::fail ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_24_001.log b/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_24_001.log deleted file mode 100644 index fc250dce..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_24_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:78:24: replace % with + in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace % with + in main -@@ -70,17 +70,17 @@ - }) - }); - let mut c = c.connect(None).await.unwrap(); - - let mut rng = rand::rngs::OsRng; - let mut random_queues = Vec::from(QUEUES); - random_queues.shuffle(&mut rng); - for idx in 0..jobs { -- if idx % 2 == 0 { -+ if idx + /* ~ changed by cargo-mutants ~ */ 2 == 0 { - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.45s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.99s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_client ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::enqueue_job ... ok -test community::fail ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_worker ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::queue ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_28.log b/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_28.log deleted file mode 100644 index 16145433..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_78_col_28.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:78:28: replace == with != in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace == with != in main -@@ -70,17 +70,17 @@ - }) - }); - let mut c = c.connect(None).await.unwrap(); - - let mut rng = rand::rngs::OsRng; - let mut random_queues = Vec::from(QUEUES); - random_queues.shuffle(&mut rng); - for idx in 0..jobs { -- if idx % 2 == 0 { -+ if idx % 2 != /* ~ changed by cargo-mutants ~ */ 0 { - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.73s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::queue ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::multi ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::roundtrip ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::fail ... ok -test community::hello_client ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.60s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_87_col_70.log b/mutants.out.old/log/src__bin__loadtest.rs_line_87_col_70.log deleted file mode 100644 index 4bef87f3..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_87_col_70.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:87:70: replace >= with < in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace >= with < in main -@@ -79,17 +79,17 @@ - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; -- if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { -+ if pushed.fetch_add(1, atomic::Ordering::SeqCst) < /* ~ changed by cargo-mutants ~ */ jobs { - return Ok::(idx); - } - } else { - // pop - c.run_one(0, &random_queues[..]).await?; - if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { - return Ok(idx); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.43s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.97s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_client ... ok -test community::fail ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_worker ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__bin__loadtest.rs_line_93_col_70.log b/mutants.out.old/log/src__bin__loadtest.rs_line_93_col_70.log deleted file mode 100644 index 0218fb3e..00000000 --- a/mutants.out.old/log/src__bin__loadtest.rs_line_93_col_70.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/bin/loadtest.rs:93:70: replace >= with < in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace >= with < in main -@@ -85,17 +85,17 @@ - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { - return Ok::(idx); - } - } else { - // pop - c.run_one(0, &random_queues[..]).await?; -- if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { -+ if popped.fetch_add(1, atomic::Ordering::SeqCst) < /* ~ changed by cargo-mutants ~ */ jobs { - return Ok(idx); - } - } - } - Ok(jobs) - }); - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.30s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.09s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::fail ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__batch__cmd.rs_line_8_col_9.log b/mutants.out.old/log/src__proto__batch__cmd.rs_line_8_col_9.log deleted file mode 100644 index 754ed2f6..00000000 --- a/mutants.out.old/log/src__proto__batch__cmd.rs_line_8_col_9.log +++ /dev/null @@ -1,170 +0,0 @@ - -*** src/proto/batch/cmd.rs:8:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/batch/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -1,19 +1,16 @@ - use crate::error::Error; - use crate::proto::{single::FaktoryCommand, Batch, BatchId}; - use tokio::io::AsyncWriteExt; - - #[async_trait::async_trait] - impl FaktoryCommand for Batch { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- w.write_all(b"BATCH NEW ").await?; -- let r = serde_json::to_vec(self).map_err(Error::Serialization)?; -- w.write_all(&r).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - macro_rules! batch_cmd { - ($structure:ident, $cmd:expr) => { - impl From for $structure { - fn from(value: BatchId) -> Self { - $structure(value) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.87s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_expiring_job ... ok -test community::enqueue_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test community::multi ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_client ... ok -test community::queue ... ok -test community::roundtrip ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::fail ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.67s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__batch__handle.rs_line_14_col_9.log b/mutants.out.old/log/src__proto__batch__handle.rs_line_14_col_9.log deleted file mode 100644 index 309b1f45..00000000 --- a/mutants.out.old/log/src__proto__batch__handle.rs_line_14_col_9.log +++ /dev/null @@ -1,44 +0,0 @@ - -*** src/proto/batch/handle.rs:14:9: replace BatchHandle<'a, S>::id -> &BatchId with &Default::default() - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::id -> &BatchId with &Default::default() -@@ -6,17 +6,17 @@ - pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - bid: BatchId, - c: &'a mut Client, - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { - /// ID issued by the Faktory server to this batch. - pub fn id(&self) -> &BatchId { -- &self.bid -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - BatchHandle { bid, c } - } - - /// Add the given job to the batch. - /// - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0515]: cannot return reference to temporary value - --> src/proto/batch/handle.rs:14:9 - | -14 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^------------------ - | || - | |temporary value created here - | returns a reference to data owned by the current function - -For more information about this error, try `rustc --explain E0515`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__handle.rs_line_27_col_9.log b/mutants.out.old/log/src__proto__batch__handle.rs_line_27_col_9.log deleted file mode 100644 index c5b41b16..00000000 --- a/mutants.out.old/log/src__proto__batch__handle.rs_line_27_col_9.log +++ /dev/null @@ -1,169 +0,0 @@ - -*** src/proto/batch/handle.rs:27:9: replace BatchHandle<'a, S>::add -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::add -> Result, Error> with Ok(Some(Default::default())) -@@ -19,18 +19,17 @@ - } - - /// Add the given job to the batch. - /// - /// Should the submitted job - for whatever reason - already have a `bid` key present in its custom hash, - /// this value will be overwritten by the ID of the batch this job is being added to with the old value - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { -- let bid = job.custom.insert("bid".into(), self.bid.clone().into()); -- self.c.enqueue(job).await.map(|_| bid) -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { - batch.parent_bid = Some(self.bid.clone()); - self.c.start_batch(batch).await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.59s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_client ... ok -test community::enqueue_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::roundtrip ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__batch__handle.rs_line_27_col_9_001.log b/mutants.out.old/log/src__proto__batch__handle.rs_line_27_col_9_001.log deleted file mode 100644 index f5c523cb..00000000 --- a/mutants.out.old/log/src__proto__batch__handle.rs_line_27_col_9_001.log +++ /dev/null @@ -1,169 +0,0 @@ - -*** src/proto/batch/handle.rs:27:9: replace BatchHandle<'a, S>::add -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::add -> Result, Error> with Ok(None) -@@ -19,18 +19,17 @@ - } - - /// Add the given job to the batch. - /// - /// Should the submitted job - for whatever reason - already have a `bid` key present in its custom hash, - /// this value will be overwritten by the ID of the batch this job is being added to with the old value - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { -- let bid = job.custom.insert("bid".into(), self.bid.clone().into()); -- self.c.enqueue(job).await.map(|_| bid) -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { - batch.parent_bid = Some(self.bid.clone()); - self.c.start_batch(batch).await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.64s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test community::roundtrip ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test community::multi ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9.log b/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9.log deleted file mode 100644 index 65413fb5..00000000 --- a/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) -@@ -25,18 +25,17 @@ - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { -- batch.parent_bid = Some(self.bid.clone()); -- self.c.start_batch(batch).await -+ Ok(BatchHandle::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BatchHandle` in the current scope - --> src/proto/batch/handle.rs:33:25 - | -6 | pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - | ----------------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -33 | Ok(BatchHandle::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BatchHandle<'_, _>` - | -note: if you're trying to build a new `BatchHandle<'_, _>`, consider using `BatchHandle::<'a, S>::new` which returns `BatchHandle<'_, S>` - --> src/proto/batch/handle.rs:17:5 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_001.log b/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_001.log deleted file mode 100644 index 44aec197..00000000 --- a/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_001.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) -@@ -25,18 +25,17 @@ - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { -- batch.parent_bid = Some(self.bid.clone()); -- self.c.start_batch(batch).await -+ Ok(BatchHandle::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BatchHandle<'_, S>: Default` is not satisfied - --> src/proto/batch/handle.rs:33:30 - | -33 | Ok(BatchHandle::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchHandle<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_002.log b/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_002.log deleted file mode 100644 index 719dbbce..00000000 --- a/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_002.log +++ /dev/null @@ -1,52 +0,0 @@ - -*** src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) -@@ -25,18 +25,17 @@ - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { -- batch.parent_bid = Some(self.bid.clone()); -- self.c.start_batch(batch).await -+ Ok(BatchHandle::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/batch/handle.rs:33:12 - | -33 | Ok(BatchHandle::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-------------------- an argument of type `&mut Client` is missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the argument - | -33 | Ok(BatchHandle::new(Default::default(), /* &mut Client */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_003.log b/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_003.log deleted file mode 100644 index 2523eeb8..00000000 --- a/mutants.out.old/log/src__proto__batch__handle.rs_line_33_col_9_003.log +++ /dev/null @@ -1,52 +0,0 @@ - -*** src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new()) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new()) -@@ -25,18 +25,17 @@ - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { -- batch.parent_bid = Some(self.bid.clone()); -- self.c.start_batch(batch).await -+ Ok(BatchHandle::new()) /* ~ changed by cargo-mutants ~ */ - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/batch/handle.rs:33:12 - | -33 | Ok(BatchHandle::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-- two arguments of type `BatchId` and `&mut Client` are missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the arguments - | -33 | Ok(BatchHandle::new(/* BatchId */, /* &mut Client */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__handle.rs_line_44_col_9.log b/mutants.out.old/log/src__proto__batch__handle.rs_line_44_col_9.log deleted file mode 100644 index d7a41296..00000000 --- a/mutants.out.old/log/src__proto__batch__handle.rs_line_44_col_9.log +++ /dev/null @@ -1,162 +0,0 @@ - -*** src/proto/batch/handle.rs:44:9: replace BatchHandle<'a, S>::commit -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::commit -> Result<(), Error> with Ok(()) -@@ -36,11 +36,11 @@ - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - pub async fn commit(self) -> Result<(), Error> { -- self.c.commit_batch(self.bid).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.27s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.98s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::enqueue_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::fail ... ok -test community::hello_worker ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_created_with_builder ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__batch__mod.rs_line_163_col_9.log b/mutants.out.old/log/src__proto__batch__mod.rs_line_163_col_9.log deleted file mode 100644 index 783e1680..00000000 --- a/mutants.out.old/log/src__proto__batch__mod.rs_line_163_col_9.log +++ /dev/null @@ -1,57 +0,0 @@ - -*** src/proto/batch/mod.rs:163:9: replace Batch::builder -> BatchBuilder with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace Batch::builder -> BatchBuilder with Default::default() -@@ -155,17 +155,17 @@ - #[serde(skip_serializing_if = "Option::is_none")] - #[builder(setter(skip))] - pub(crate) complete: Option, - } - - impl Batch { - /// Create a new `BatchBuilder`. - pub fn builder() -> BatchBuilder { -- BatchBuilder::new() -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl BatchBuilder { - fn build(self) -> Batch { - self.try_build().expect("There are no required fields.") - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:163:9 - | -163 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchBuilder` - | -help: consider annotating `BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `batch::BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:163:9 - | -163 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `batch::BatchBuilder` - | -help: consider annotating `batch::BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__mod.rs_line_169_col_9.log b/mutants.out.old/log/src__proto__batch__mod.rs_line_169_col_9.log deleted file mode 100644 index 2edab25a..00000000 --- a/mutants.out.old/log/src__proto__batch__mod.rs_line_169_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/batch/mod.rs:169:9: replace BatchBuilder::build -> Batch with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::build -> Batch with Default::default() -@@ -161,17 +161,17 @@ - /// Create a new `BatchBuilder`. - pub fn builder() -> BatchBuilder { - BatchBuilder::new() - } - } - - impl BatchBuilder { - fn build(self) -> Batch { -- self.try_build().expect("There are no required fields.") -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new `BatchBuilder` with optional description of the batch. - pub fn new() -> BatchBuilder { - Self::create_empty() - } - - /// Batch description for Faktory WEB UI. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Batch: Default` is not satisfied - --> src/proto/batch/mod.rs:169:9 - | -169 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Batch` - | -help: consider annotating `Batch` with `#[derive(Default)]` - | -132 + #[derive(Default)] -133 | pub struct Batch { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__mod.rs_line_179_col_9.log b/mutants.out.old/log/src__proto__batch__mod.rs_line_179_col_9.log deleted file mode 100644 index b7cd7e06..00000000 --- a/mutants.out.old/log/src__proto__batch__mod.rs_line_179_col_9.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/batch/mod.rs:179:9: replace BatchBuilder::description -> Self with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::description -> Self with Default::default() -@@ -171,18 +171,17 @@ - - /// Create a new `BatchBuilder` with optional description of the batch. - pub fn new() -> BatchBuilder { - Self::create_empty() - } - - /// Batch description for Faktory WEB UI. - pub fn description(mut self, description: impl Into) -> Self { -- self.description = Some(Some(description.into())); -- self -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a `Batch` with only `success` callback specified. - pub fn with_success_callback(self, success_cb: Job) -> Batch { - let mut b = self.build(); - b.success = Some(success_cb); - b - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:179:9 - | -179 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchBuilder` - | -help: consider annotating `BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `batch::BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:179:9 - | -179 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `batch::BatchBuilder` - | -help: consider annotating `batch::BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__mod.rs_line_185_col_9.log b/mutants.out.old/log/src__proto__batch__mod.rs_line_185_col_9.log deleted file mode 100644 index 2d1d5890..00000000 --- a/mutants.out.old/log/src__proto__batch__mod.rs_line_185_col_9.log +++ /dev/null @@ -1,49 +0,0 @@ - -*** src/proto/batch/mod.rs:185:9: replace BatchBuilder::with_success_callback -> Batch with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::with_success_callback -> Batch with Default::default() -@@ -177,19 +177,17 @@ - /// Batch description for Faktory WEB UI. - pub fn description(mut self, description: impl Into) -> Self { - self.description = Some(Some(description.into())); - self - } - - /// Create a `Batch` with only `success` callback specified. - pub fn with_success_callback(self, success_cb: Job) -> Batch { -- let mut b = self.build(); -- b.success = Some(success_cb); -- b -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a `Batch` with only `complete` callback specified. - pub fn with_complete_callback(self, complete_cb: Job) -> Batch { - let mut b = self.build(); - b.complete = Some(complete_cb); - b - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Batch: Default` is not satisfied - --> src/proto/batch/mod.rs:185:9 - | -185 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Batch` - | -help: consider annotating `Batch` with `#[derive(Default)]` - | -132 + #[derive(Default)] -133 | pub struct Batch { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__mod.rs_line_192_col_9.log b/mutants.out.old/log/src__proto__batch__mod.rs_line_192_col_9.log deleted file mode 100644 index abad9769..00000000 --- a/mutants.out.old/log/src__proto__batch__mod.rs_line_192_col_9.log +++ /dev/null @@ -1,49 +0,0 @@ - -*** src/proto/batch/mod.rs:192:9: replace BatchBuilder::with_complete_callback -> Batch with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::with_complete_callback -> Batch with Default::default() -@@ -184,19 +184,17 @@ - pub fn with_success_callback(self, success_cb: Job) -> Batch { - let mut b = self.build(); - b.success = Some(success_cb); - b - } - - /// Create a `Batch` with only `complete` callback specified. - pub fn with_complete_callback(self, complete_cb: Job) -> Batch { -- let mut b = self.build(); -- b.complete = Some(complete_cb); -- b -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a `Batch` with both `success` and `complete` callbacks specified. - pub fn with_callbacks(self, success_cb: Job, complete_cb: Job) -> Batch { - let mut b = self.build(); - b.success = Some(success_cb); - b.complete = Some(complete_cb); - b - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Batch: Default` is not satisfied - --> src/proto/batch/mod.rs:192:9 - | -192 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Batch` - | -help: consider annotating `Batch` with `#[derive(Default)]` - | -132 + #[derive(Default)] -133 | pub struct Batch { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__mod.rs_line_199_col_9.log b/mutants.out.old/log/src__proto__batch__mod.rs_line_199_col_9.log deleted file mode 100644 index 093721f3..00000000 --- a/mutants.out.old/log/src__proto__batch__mod.rs_line_199_col_9.log +++ /dev/null @@ -1,50 +0,0 @@ - -*** src/proto/batch/mod.rs:199:9: replace BatchBuilder::with_callbacks -> Batch with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::with_callbacks -> Batch with Default::default() -@@ -191,20 +191,17 @@ - pub fn with_complete_callback(self, complete_cb: Job) -> Batch { - let mut b = self.build(); - b.complete = Some(complete_cb); - b - } - - /// Create a `Batch` with both `success` and `complete` callbacks specified. - pub fn with_callbacks(self, success_cb: Job, complete_cb: Job) -> Batch { -- let mut b = self.build(); -- b.success = Some(success_cb); -- b.complete = Some(complete_cb); -- b -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl Clone for BatchBuilder { - fn clone(&self) -> Self { - BatchBuilder { - parent_bid: self.parent_bid.clone(), - description: self.description.clone(), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Batch: Default` is not satisfied - --> src/proto/batch/mod.rs:199:9 - | -199 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Batch` - | -help: consider annotating `Batch` with `#[derive(Default)]` - | -132 + #[derive(Default)] -133 | pub struct Batch { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__mod.rs_line_208_col_9.log b/mutants.out.old/log/src__proto__batch__mod.rs_line_208_col_9.log deleted file mode 100644 index ddf7e883..00000000 --- a/mutants.out.old/log/src__proto__batch__mod.rs_line_208_col_9.log +++ /dev/null @@ -1,62 +0,0 @@ - -*** src/proto/batch/mod.rs:208:9: replace ::clone -> Self with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace ::clone -> Self with Default::default() -@@ -200,22 +200,17 @@ - b.success = Some(success_cb); - b.complete = Some(complete_cb); - b - } - } - - impl Clone for BatchBuilder { - fn clone(&self) -> Self { -- BatchBuilder { -- parent_bid: self.parent_bid.clone(), -- description: self.description.clone(), -- success: self.success.clone(), -- complete: self.complete.clone(), -- } -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[cfg(test)] - mod test { - use std::str::FromStr; - - use chrono::{DateTime, Utc}; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:208:9 - | -208 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchBuilder` - | -help: consider annotating `BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `batch::BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:208:9 - | -208 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `batch::BatchBuilder` - | -help: consider annotating `batch::BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__status.rs_line_31_col_9.log b/mutants.out.old/log/src__proto__batch__status.rs_line_31_col_9.log deleted file mode 100644 index cc29315f..00000000 --- a/mutants.out.old/log/src__proto__batch__status.rs_line_31_col_9.log +++ /dev/null @@ -1,174 +0,0 @@ - -*** src/proto/batch/status.rs:31:9: replace ::fmt -> std::fmt::Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace ::fmt -> std::fmt::Result with Ok(Default::default()) -@@ -23,23 +23,17 @@ - Enqueued, - /// The enqueued callback job has been consumed and successfully executed. - #[serde(rename = "2")] - FinishedOk, - } - - impl std::fmt::Display for CallbackState { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { -- use CallbackState::*; -- let s = match self { -- Pending => "Pending", -- Enqueued => "Enqueued", -- FinishedOk => "FinishedOk", -- }; -- write!(f, "{}", s) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - /// Batch status retrieved from Faktory server. - #[derive(Deserialize, Debug)] - pub struct BatchStatus { - // Fields "bid", "created_at", "description", "total", "pending", and "failed" - // are described in the docs: https://github.com/contribsys/faktory/wiki/Ent-Batches#status - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.66s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.09s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.16s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::enqueue_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::queue ... ok -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9.log b/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9.log deleted file mode 100644 index b0933116..00000000 --- a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9.log +++ /dev/null @@ -1,35 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(Some(BatchHandle::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BatchHandle<'_, S>: Default` is not satisfied - --> src/proto/batch/status.rs:90:35 - | -90 | Ok(Some(BatchHandle::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchHandle<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_001.log b/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_001.log deleted file mode 100644 index 51a0db49..00000000 --- a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_001.log +++ /dev/null @@ -1,49 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(Some(BatchHandle::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BatchHandle` in the current scope - --> src/proto/batch/status.rs:90:30 - | -90 | Ok(Some(BatchHandle::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BatchHandle<'_, _>` - | - ::: src/proto/batch/handle.rs:6:1 - | -6 | pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - | ----------------------------------------------------------------------------- function or associated item `from_iter` not found for this struct - | -note: if you're trying to build a new `BatchHandle<'_, _>`, consider using `BatchHandle::<'a, S>::new` which returns `BatchHandle<'_, S>` - --> src/proto/batch/handle.rs:17:5 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_002.log b/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_002.log deleted file mode 100644 index 129c3097..00000000 --- a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_002.log +++ /dev/null @@ -1,162 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(None) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(None) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.21s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.02s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_worker ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::roundtrip ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_003.log b/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_003.log deleted file mode 100644 index 9eedad5b..00000000 --- a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_003.log +++ /dev/null @@ -1,45 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new())) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new())) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(Some(BatchHandle::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/batch/status.rs:90:17 - | -90 | Ok(Some(BatchHandle::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-- two arguments of type `BatchId` and `&mut Client` are missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the arguments - | -90 | Ok(Some(BatchHandle::new(/* BatchId */, /* &mut Client */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_004.log b/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_004.log deleted file mode 100644 index 93045992..00000000 --- a/mutants.out.old/log/src__proto__batch__status.rs_line_90_col_9_004.log +++ /dev/null @@ -1,45 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(Some(BatchHandle::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/batch/status.rs:90:17 - | -90 | Ok(Some(BatchHandle::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-------------------- an argument of type `&mut Client` is missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the argument - | -90 | Ok(Some(BatchHandle::new(Default::default(), /* &mut Client */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_11_col_9.log b/mutants.out.old/log/src__proto__client__ent.rs_line_11_col_9.log deleted file mode 100644 index d0593f5f..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_11_col_9.log +++ /dev/null @@ -1,169 +0,0 @@ - -*** src/proto/client/ent.rs:11:9: replace Client::set_progress -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::set_progress -> Result<(), Error> with Ok(()) -@@ -3,18 +3,17 @@ - use super::{Client, ReadToken}; - use crate::ent::{Batch, BatchHandle, BatchId}; - use crate::error::Error; - use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; - - impl Client { - /// Send information on a job's execution progress to Faktory. - pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { -- let cmd = Track::Set(upd); -- self.issue(&cmd).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { - let cmd = Track::Get(jid); - self.issue(&cmd).await?.read_json().await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.58s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.15s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_worker ... ok -test community::queue ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::fail ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_17_col_9.log b/mutants.out.old/log/src__proto__client__ent.rs_line_17_col_9.log deleted file mode 100644 index eb01a0e6..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_17_col_9.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/client/ent.rs:17:9: replace Client::get_progress -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::get_progress -> Result, Error> with Ok(Some(Default::default())) -@@ -9,18 +9,17 @@ - /// Send information on a job's execution progress to Faktory. - pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { - let cmd = Track::Set(upd); - self.issue(&cmd).await?.read_ok().await - } - - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { -- let cmd = Track::Get(jid); -- self.issue(&cmd).await?.read_json().await -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Progress: Default` is not satisfied - --> src/proto/client/ent.rs:17:17 - | -17 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Progress` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_17_col_9_001.log b/mutants.out.old/log/src__proto__client__ent.rs_line_17_col_9_001.log deleted file mode 100644 index a8467958..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_17_col_9_001.log +++ /dev/null @@ -1,169 +0,0 @@ - -*** src/proto/client/ent.rs:17:9: replace Client::get_progress -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::get_progress -> Result, Error> with Ok(None) -@@ -9,18 +9,17 @@ - /// Send information on a job's execution progress to Faktory. - pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { - let cmd = Track::Set(upd); - self.issue(&cmd).await?.read_ok().await - } - - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { -- let cmd = Track::Get(jid); -- self.issue(&cmd).await?.read_json().await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.35s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.09s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::queue ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test community::multi ... ok -test community::test_jobs_created_with_builder ... ok -test community::roundtrip ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_23_col_9.log b/mutants.out.old/log/src__proto__client__ent.rs_line_23_col_9.log deleted file mode 100644 index 79394af0..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_23_col_9.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/client/ent.rs:23:9: replace Client::get_batch_status -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::get_batch_status -> Result, Error> with Ok(Some(Default::default())) -@@ -15,18 +15,17 @@ - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { - let cmd = Track::Get(jid); - self.issue(&cmd).await?.read_json().await - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { -- let cmd = GetBatchStatus::from(bid); -- self.issue(&cmd).await?.read_json().await -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { - let bid = self.issue(&batch).await?.read_bid().await?; - Ok(BatchHandle::new(bid, self)) - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BatchStatus: Default` is not satisfied - --> src/proto/client/ent.rs:23:17 - | -23 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchStatus` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_23_col_9_001.log b/mutants.out.old/log/src__proto__client__ent.rs_line_23_col_9_001.log deleted file mode 100644 index 6a3fb79a..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_23_col_9_001.log +++ /dev/null @@ -1,169 +0,0 @@ - -*** src/proto/client/ent.rs:23:9: replace Client::get_batch_status -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::get_batch_status -> Result, Error> with Ok(None) -@@ -15,18 +15,17 @@ - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { - let cmd = Track::Get(jid); - self.issue(&cmd).await?.read_json().await - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { -- let cmd = GetBatchStatus::from(bid); -- self.issue(&cmd).await?.read_json().await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { - let bid = self.issue(&batch).await?.read_bid().await?; - Ok(BatchHandle::new(bid, self)) - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.61s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.38s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9.log b/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9.log deleted file mode 100644 index d10f8cf7..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9.log +++ /dev/null @@ -1,56 +0,0 @@ - -*** src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) -@@ -21,18 +21,17 @@ - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { -- let bid = self.issue(&batch).await?.read_bid().await?; -- Ok(BatchHandle::new(bid, self)) -+ Ok(BatchHandle::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BatchHandle` in the current scope - --> src/proto/client/ent.rs:29:25 - | -29 | Ok(BatchHandle::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BatchHandle<'_, _>` - | - ::: src/proto/batch/handle.rs:6:1 - | -6 | pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - | ----------------------------------------------------------------------------- function or associated item `from_iter` not found for this struct - | -note: if you're trying to build a new `BatchHandle<'_, _>`, consider using `BatchHandle::<'a, S>::new` which returns `BatchHandle<'_, S>` - --> src/proto/batch/handle.rs:17:5 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_001.log b/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_001.log deleted file mode 100644 index ce8276e3..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_001.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) -@@ -21,18 +21,17 @@ - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { -- let bid = self.issue(&batch).await?.read_bid().await?; -- Ok(BatchHandle::new(bid, self)) -+ Ok(BatchHandle::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BatchHandle<'_, S>: Default` is not satisfied - --> src/proto/client/ent.rs:29:30 - | -29 | Ok(BatchHandle::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchHandle<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_002.log b/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_002.log deleted file mode 100644 index 52cf2861..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_002.log +++ /dev/null @@ -1,52 +0,0 @@ - -*** src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) -@@ -21,18 +21,17 @@ - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { -- let bid = self.issue(&batch).await?.read_bid().await?; -- Ok(BatchHandle::new(bid, self)) -+ Ok(BatchHandle::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/ent.rs:29:12 - | -29 | Ok(BatchHandle::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-------------------- an argument of type `&mut Client` is missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the argument - | -29 | Ok(BatchHandle::new(Default::default(), /* &mut Client */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_003.log b/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_003.log deleted file mode 100644 index ae78e3ac..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_29_col_9_003.log +++ /dev/null @@ -1,52 +0,0 @@ - -*** src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new()) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new()) -@@ -21,18 +21,17 @@ - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { -- let bid = self.issue(&batch).await?.read_bid().await?; -- Ok(BatchHandle::new(bid, self)) -+ Ok(BatchHandle::new()) /* ~ changed by cargo-mutants ~ */ - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/client/ent.rs:29:12 - | -29 | Ok(BatchHandle::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-- two arguments of type `BatchId` and `&mut Client` are missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the arguments - | -29 | Ok(BatchHandle::new(/* BatchId */, /* &mut Client */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9.log b/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9.log deleted file mode 100644 index 7d04dd76..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9.log +++ /dev/null @@ -1,52 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(Some(BatchHandle::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/ent.rs:38:17 - | -38 | Ok(Some(BatchHandle::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-------------------- an argument of type `&mut Client` is missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the argument - | -38 | Ok(Some(BatchHandle::new(Default::default(), /* &mut Client */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_001.log b/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_001.log deleted file mode 100644 index af7fe2a3..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_001.log +++ /dev/null @@ -1,56 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(Some(BatchHandle::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BatchHandle` in the current scope - --> src/proto/client/ent.rs:38:30 - | -38 | Ok(Some(BatchHandle::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BatchHandle<'_, _>` - | - ::: src/proto/batch/handle.rs:6:1 - | -6 | pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - | ----------------------------------------------------------------------------- function or associated item `from_iter` not found for this struct - | -note: if you're trying to build a new `BatchHandle<'_, _>`, consider using `BatchHandle::<'a, S>::new` which returns `BatchHandle<'_, S>` - --> src/proto/batch/handle.rs:17:5 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_002.log b/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_002.log deleted file mode 100644 index 57c737fd..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_002.log +++ /dev/null @@ -1,169 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(None) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.59s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.19s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::multi ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::enqueue_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::hello_worker ... ok -test community::fail ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_003.log b/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_003.log deleted file mode 100644 index 74c8109c..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_003.log +++ /dev/null @@ -1,52 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new())) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(Some(BatchHandle::new())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/client/ent.rs:38:17 - | -38 | Ok(Some(BatchHandle::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-- two arguments of type `BatchId` and `&mut Client` are missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the arguments - | -38 | Ok(Some(BatchHandle::new(/* BatchId */, /* &mut Client */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_004.log b/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_004.log deleted file mode 100644 index d90b9c0c..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_38_col_9_004.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(Some(BatchHandle::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BatchHandle<'_, S>: Default` is not satisfied - --> src/proto/client/ent.rs:38:35 - | -38 | Ok(Some(BatchHandle::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchHandle<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_43_col_9.log b/mutants.out.old/log/src__proto__client__ent.rs_line_43_col_9.log deleted file mode 100644 index b7b810c9..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_43_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/client/ent.rs:43:9: replace Client::commit_batch -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::commit_batch -> Result<(), Error> with Ok(()) -@@ -35,17 +35,17 @@ - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - Ok(bid.map(|bid| BatchHandle::new(bid, self))) - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { -- self.issue(&CommitBatch::from(bid)).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { - single::read_bid(&mut self.0.stream).await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.45s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.12s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test community::enqueue_job ... ok -test community::fail ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_49_col_9.log b/mutants.out.old/log/src__proto__client__ent.rs_line_49_col_9.log deleted file mode 100644 index f37050db..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_49_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/client/ent.rs:49:9: replace ReadToken<'a, S>::read_bid -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace ReadToken<'a, S>::read_bid -> Result with Ok(Default::default()) -@@ -41,17 +41,17 @@ - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { -- single::read_bid(&mut self.0.stream).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn maybe_bid(self) -> Result, Error> { - use crate::error; - - let bid_read_res = single::read_bid(&mut self.0.stream).await; - if bid_read_res.is_ok() { - return Ok(Some(bid_read_res.unwrap())); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.26s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::enqueue_job ... ok -test community::multi ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_53_col_9.log b/mutants.out.old/log/src__proto__client__ent.rs_line_53_col_9.log deleted file mode 100644 index 381261c2..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_53_col_9.log +++ /dev/null @@ -1,176 +0,0 @@ - -*** src/proto/client/ent.rs:53:9: replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(None) -@@ -45,25 +45,11 @@ - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { - single::read_bid(&mut self.0.stream).await - } - - pub(crate) async fn maybe_bid(self) -> Result, Error> { -- use crate::error; -- -- let bid_read_res = single::read_bid(&mut self.0.stream).await; -- if bid_read_res.is_ok() { -- return Ok(Some(bid_read_res.unwrap())); -- } -- match bid_read_res.unwrap_err() { -- Error::Protocol(error::Protocol::Internal { msg }) => { -- if msg.starts_with("No such batch") { -- return Ok(None); -- } -- return Err(error::Protocol::Internal { msg }.into()); -- } -- another => Err(another), -- } -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.20s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.97s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::enqueue_job ... ok -test community::hello_worker ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::fail ... ok -test community::roundtrip ... ok -test community::queue ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__ent.rs_line_53_col_9_001.log b/mutants.out.old/log/src__proto__client__ent.rs_line_53_col_9_001.log deleted file mode 100644 index ccef19d6..00000000 --- a/mutants.out.old/log/src__proto__client__ent.rs_line_53_col_9_001.log +++ /dev/null @@ -1,176 +0,0 @@ - -*** src/proto/client/ent.rs:53:9: replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(Some(Default::default())) -@@ -45,25 +45,11 @@ - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { - single::read_bid(&mut self.0.stream).await - } - - pub(crate) async fn maybe_bid(self) -> Result, Error> { -- use crate::error; -- -- let bid_read_res = single::read_bid(&mut self.0.stream).await; -- if bid_read_res.is_ok() { -- return Ok(Some(bid_read_res.unwrap())); -- } -- match bid_read_res.unwrap_err() { -- Error::Protocol(error::Protocol::Internal { msg }) => { -- if msg.starts_with("No such batch") { -- return Ok(None); -- } -- return Err(error::Protocol::Internal { msg }.into()); -- } -- another => Err(another), -- } -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.68s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.32s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::queue ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test community::enqueue_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::multi ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.67s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_159_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_159_col_9.log deleted file mode 100644 index f40bc917..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_159_col_9.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/client/mod.rs:159:9: replace Client::connect_again -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::connect_again -> Result with Ok(Default::default()) -@@ -151,18 +151,17 @@ - opts: ClientOptions, - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send + Reconnect, - { - pub(crate) async fn connect_again(&mut self) -> Result { -- let s = self.stream.reconnect().await?; -- Client::new(s, self.opts.clone()).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn reconnect(&mut self) -> Result<(), Error> { - self.stream = self.stream.reconnect().await?; - self.init().await - } - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Client: Default` is not satisfied - --> src/proto/client/mod.rs:159:12 - | -159 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Client` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_164_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_164_col_9.log deleted file mode 100644 index 00a99b0b..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_164_col_9.log +++ /dev/null @@ -1,169 +0,0 @@ - -*** src/proto/client/mod.rs:164:9: replace Client::reconnect -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::reconnect -> Result<(), Error> with Ok(()) -@@ -156,18 +156,17 @@ - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send + Reconnect, - { - pub(crate) async fn connect_again(&mut self) -> Result { - let s = self.stream.reconnect().await?; - Client::new(s, self.opts.clone()).await - } - - pub(crate) async fn reconnect(&mut self) -> Result<(), Error> { -- self.stream = self.stream.reconnect().await?; -- self.init().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Drop for Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - fn drop(&mut self) { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 2.11s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.30s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_worker ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::fail ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::queue ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_client ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_174_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_174_col_9.log deleted file mode 100644 index fb25203d..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_174_col_9.log +++ /dev/null @@ -1,144 +0,0 @@ - -*** src/proto/client/mod.rs:174:9: replace >::drop with () - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace >::drop with () -@@ -166,23 +166,17 @@ - } - } - - impl Drop for Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - fn drop(&mut self) { -- tokio::task::block_in_place(|| { -- tokio::runtime::Handle::current().block_on(async { -- single::write_command(&mut self.stream, &single::End) -- .await -- .unwrap(); -- }) -- }); -+ () /* ~ changed by cargo-mutants ~ */ - } - } - - pub(crate) enum HeartbeatStatus { - Ok, - Terminate, - Quiet, - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.47s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.95s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:32:5: -assertion `left == right` failed - left: [] - right: [69, 78, 68, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:400:5: -assertion failed: written.ends_with(b"\r\nEND\r\n") - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - hello - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9.log deleted file mode 100644 index c16f821c..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9.log +++ /dev/null @@ -1,56 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:25 - | -196 | Ok(Client::from(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_001.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_001.log deleted file mode 100644 index 18290ef5..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_001.log +++ /dev/null @@ -1,94 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new())) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:196:24 - | -196 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -196 | Ok(Client::new(BufStream::new(/* stream */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------ an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -196 | Ok(Client::new(BufStream::new(), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:196:9 - | -196 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^-----------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 3 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 3 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_002.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_002.log deleted file mode 100644 index cb38cced..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_002.log +++ /dev/null @@ -1,78 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new()) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^-- two arguments are missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the arguments - | -196 | Ok(Client::new(/* stream */, /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:196:9 - | -196 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^-------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_003.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_003.log deleted file mode 100644 index 22703299..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_003.log +++ /dev/null @@ -1,56 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:25 - | -196 | Ok(Client::from(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_004.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_004.log deleted file mode 100644 index 1c25968d..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_004.log +++ /dev/null @@ -1,74 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:196:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -196 | Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:196:42 - | -196 | Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_005.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_005.log deleted file mode 100644 index d576f9d3..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_005.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from_iter([BufStream::from(Default::default())])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:196:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -196 | Ok(Client::from_iter([BufStream::from(Default::default())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_006.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_006.log deleted file mode 100644 index 583730af..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_006.log +++ /dev/null @@ -1,78 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------------------------- an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -196 | Ok(Client::new(BufStream::from(Default::default()), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:196:9 - | -196 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^------------------------------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_007.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_007.log deleted file mode 100644 index 835b58ad..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_007.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from_iter([BufStream::new(Default::default())])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:196:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -196 | Ok(Client::from_iter([BufStream::new(Default::default())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_008.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_008.log deleted file mode 100644 index 9552f5aa..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_008.log +++ /dev/null @@ -1,78 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:196:35 - | -196 | Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^-------------------------------------------- an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -196 | Ok(Client::new(BufStream::from_iter([Default::default()]), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0599. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_009.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_009.log deleted file mode 100644 index 3648d25c..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_009.log +++ /dev/null @@ -1,73 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new())) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:196:25 - | -196 | Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -196 | Ok(Client::from(BufStream::new(/* stream */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:25 - | -196 | Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_010.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_010.log deleted file mode 100644 index a90c52cd..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_010.log +++ /dev/null @@ -1,78 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------------------------ an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -196 | Ok(Client::new(BufStream::new(Default::default()), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:196:9 - | -196 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^-----------------------------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_011.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_011.log deleted file mode 100644 index d4d4369c..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_011.log +++ /dev/null @@ -1,70 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:196:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -196 | Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:196:31 - | -196 | Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -196 | Ok(Client::from_iter([BufStream::new(/* stream */)])) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0599. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_012.log b/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_012.log deleted file mode 100644 index a2622f98..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_196_col_9_012.log +++ /dev/null @@ -1,61 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:196:36 - | -196 | Ok(Client::from(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9.log deleted file mode 100644 index 4097fb6e..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:25 - | -218 | Ok(Client::from(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_001.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_001.log deleted file mode 100644 index c81f9f49..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_001.log +++ /dev/null @@ -1,71 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:218:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -218 | Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:218:42 - | -218 | Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_002.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_002.log deleted file mode 100644 index 7cd6d521..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_002.log +++ /dev/null @@ -1,75 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------------------------- an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -218 | Ok(Client::new(BufStream::from(Default::default()), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:218:9 - | -218 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^------------------------------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_003.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_003.log deleted file mode 100644 index a03d1264..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_003.log +++ /dev/null @@ -1,75 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------------------------ an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -218 | Ok(Client::new(BufStream::new(Default::default()), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:218:9 - | -218 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^-----------------------------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_004.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_004.log deleted file mode 100644 index e193bff9..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_004.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:218:36 - | -218 | Ok(Client::from(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_005.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_005.log deleted file mode 100644 index de9f4ebe..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_005.log +++ /dev/null @@ -1,50 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from_iter([BufStream::new(Default::default())])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:218:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -218 | Ok(Client::from_iter([BufStream::new(Default::default())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_006.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_006.log deleted file mode 100644 index 2dbc66a9..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_006.log +++ /dev/null @@ -1,70 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new())) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:218:25 - | -218 | Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -218 | Ok(Client::from(BufStream::new(/* stream */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:25 - | -218 | Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_007.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_007.log deleted file mode 100644 index ca5b0428..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_007.log +++ /dev/null @@ -1,75 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:218:35 - | -218 | Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^-------------------------------------------- an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -218 | Ok(Client::new(BufStream::from_iter([Default::default()]), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0599. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_008.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_008.log deleted file mode 100644 index 018f6aeb..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_008.log +++ /dev/null @@ -1,67 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:218:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -218 | Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:218:31 - | -218 | Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -218 | Ok(Client::from_iter([BufStream::new(/* stream */)])) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0599. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_009.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_009.log deleted file mode 100644 index ce89cb2f..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_009.log +++ /dev/null @@ -1,75 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new()) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^-- two arguments are missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the arguments - | -218 | Ok(Client::new(/* stream */, /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:218:9 - | -218 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^-------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_010.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_010.log deleted file mode 100644 index 1a288a19..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_010.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:25 - | -218 | Ok(Client::from(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_011.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_011.log deleted file mode 100644 index bc1b69d3..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_011.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new())) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:218:24 - | -218 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -218 | Ok(Client::new(BufStream::new(/* stream */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------ an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -218 | Ok(Client::new(BufStream::new(), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:218:9 - | -218 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^-----------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 3 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 3 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_012.log b/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_012.log deleted file mode 100644 index f3216865..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_218_col_9_012.log +++ /dev/null @@ -1,50 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from_iter([BufStream::from(Default::default())])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:218:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -218 | Ok(Client::from_iter([BufStream::from(Default::default())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_229_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_229_col_9.log deleted file mode 100644 index fc80657e..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_229_col_9.log +++ /dev/null @@ -1,183 +0,0 @@ - -*** src/proto/client/mod.rs:229:9: replace Client::init -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::init -> Result<(), Error> with Ok(()) -@@ -221,53 +221,17 @@ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { -- let hi = single::read_hi(&mut self.stream).await?; -- check_protocols_match(hi.version)?; -- -- // fill in any missing options, and remember them for re-connect -- let mut hello = single::Hello::default(); -- -- // prepare password hash, if one expected by 'Faktory' -- if hi.salt.is_some() { -- if let Some(ref pwd) = self.opts.password { -- hello.set_password(&hi, pwd); -- } else { -- return Err(error::Connect::AuthenticationNeeded.into()); -- } -- } -- -- if self.opts.is_worker { -- // fill in any missing options, and remember them for re-connect -- let hostname = self -- .opts -- .hostname -- .clone() -- .or_else(|| hostname::get().ok()?.into_string().ok()) -- .unwrap_or_else(|| "local".to_string()); -- self.opts.hostname = Some(hostname); -- let pid = self.opts.pid.unwrap_or_else(|| std::process::id() as usize); -- self.opts.pid = Some(pid); -- let wid = self.opts.wid.clone().unwrap_or_else(WorkerId::random); -- self.opts.wid = Some(wid); -- -- hello.hostname = Some(self.opts.hostname.clone().unwrap()); -- hello.wid = Some(self.opts.wid.clone().unwrap()); -- hello.pid = Some(self.opts.pid.unwrap()); -- hello.labels.clone_from(&self.opts.labels); -- } -- -- single::write_command_and_await_ok(&mut self.stream, &hello).await?; -- Ok(()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - let mut c = Client { stream, opts }; - c.init().await?; - Ok(c) - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.84s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello_pwd ... FAILED -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED - -failures: - ----- hello_pwd stdout ---- -thread 'hello_pwd' panicked at tests/consumer.rs:46:5: -assertion failed: written.starts_with(b"HELLO {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue_first_empty stdout ---- -Serialization(Error("expected value", line: 1, column: 1)) -thread 'dequeue_first_empty' panicked at tests/consumer.rs:128:13: -internal error: entered unreachable code - ----- dequeue stdout ---- -Serialization(Error("expected value", line: 1, column: 1)) -thread 'dequeue' panicked at tests/consumer.rs:85:9: -internal error: entered unreachable code - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:17:5: -assertion failed: written.starts_with(b"HELLO {") - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - - -failures: - dequeue - dequeue_first_empty - hello - hello_pwd - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 0 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_23_col_12.log b/mutants.out.old/log/src__proto__client__mod.rs_line_23_col_12.log deleted file mode 100644 index b4d17964..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_23_col_12.log +++ /dev/null @@ -1,226 +0,0 @@ - -*** src/proto/client/mod.rs:23:12: replace != with == in check_protocols_match - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace != with == in check_protocols_match -@@ -15,17 +15,17 @@ - use tokio::net::TcpStream as TokioStream; - - mod options; - pub(crate) use options::ClientOptions; - - pub(crate) const EXPECTED_PROTOCOL_VERSION: usize = 2; - - fn check_protocols_match(ver: usize) -> Result<(), Error> { -- if ver != EXPECTED_PROTOCOL_VERSION { -+ if ver == /* ~ changed by cargo-mutants ~ */ EXPECTED_PROTOCOL_VERSION { - return Err(error::Connect::VersionMismatch { - ours: EXPECTED_PROTOCOL_VERSION, - theirs: ver, - } - .into()); - } - Ok(()) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.49s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... FAILED -test hello ... FAILED -test hello_pwd ... FAILED -test dequeue ... FAILED -thread 'well_behaved' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 2 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -thread 'well_behaved' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x59033a99b676 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x59033a99b676 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x59033a99b676 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x59033a99b676 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x59033a9c4d50 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x59033a9c4d50 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x59033a998ccf - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x59033a99b454 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x59033a99b454 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x59033a99d1c7 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x59033a99cead - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x59033a834f67 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x59033a834f67 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x59033a99d7e6 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x59033a99d7e6 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x59033a99d532 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x59033a99bb76 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x59033a99d284 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x59033a739ca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x59033a73a2a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x59033a7637b4 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x59033a7637b4 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/mock/mod.rs:136:17 - 22: 0x59033a75ef73 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x59033a7d64ef - consumer::well_behaved::{{closure}}::h74d858d81dce02a5 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:214:1 - 24: 0x59033a73b793 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x59033a7b2134 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x59033a7b1630 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x59033a7b1630 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x59033a7b1630 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x59033a7e23f4 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x59033a751d88 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x59033a794914 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x59033a751d58 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x59033a7bb247 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x59033a7c1cd8 - consumer::well_behaved::h88b846a49b219eb1 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:210:5 - 35: 0x59033a7d6307 - consumer::well_behaved::{{closure}}::hebef571c952f5951 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:152:24 - 36: 0x59033a7566c6 - core::ops::function::FnOnce::call_once::h17044c0a3e747593 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x59033a83ab2f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x59033a83ab2f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x59033a839981 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x59033a839981 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x59033a839981 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x59033a839981 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x59033a839981 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x59033a839981 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x59033a839981 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x59033a800d66 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x59033a800d66 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x59033a805da7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x59033a805da7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x59033a805da7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x59033a805da7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x59033a805da7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x59033a805da7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x59033a805da7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x59033a9a1d05 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x59033a9a1d05 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x59033a9a1d05 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x77fa68694ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x77fa68726850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'well_behaved' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_23_col_5.log b/mutants.out.old/log/src__proto__client__mod.rs_line_23_col_5.log deleted file mode 100644 index 1ee13db7..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_23_col_5.log +++ /dev/null @@ -1,175 +0,0 @@ - -*** src/proto/client/mod.rs:23:5: replace check_protocols_match -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace check_protocols_match -> Result<(), Error> with Ok(()) -@@ -15,24 +15,17 @@ - use tokio::net::TcpStream as TokioStream; - - mod options; - pub(crate) use options::ClientOptions; - - pub(crate) const EXPECTED_PROTOCOL_VERSION: usize = 2; - - fn check_protocols_match(ver: usize) -> Result<(), Error> { -- if ver != EXPECTED_PROTOCOL_VERSION { -- return Err(error::Connect::VersionMismatch { -- ours: EXPECTED_PROTOCOL_VERSION, -- theirs: ver, -- } -- .into()); -- } -- Ok(()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - /// `Client` is used to enqueue new jobs that will in turn be processed by Faktory workers. - /// - /// # Connecting to Faktory - /// - /// To issue jobs, the `Client` must first be connected to the Faktory server. Exactly how you do - /// that depends on your setup. Faktory suggests using the `FAKTORY_PROVIDER` and `FAKTORY_URL` - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.55s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.02s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test community::enqueue_job ... ok -test community::multi ... ok -test community::roundtrip ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::hello_worker ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::queue ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 97) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 131) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 72) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 63) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 81) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 115) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9.log deleted file mode 100644 index 33a0fb3a..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9.log +++ /dev/null @@ -1,55 +0,0 @@ - -*** src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::new()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::issue -> Result, Error> with Ok(ReadToken::new()) -@@ -270,18 +270,17 @@ - c.init().await?; - Ok(c) - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { -- single::write_command(&mut self.stream, c).await?; -- Ok(ReadToken(self)) -+ Ok(ReadToken::new()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `new` found for struct `ReadToken` in the current scope - --> src/proto/client/mod.rs:278:23 - | -278 | Ok(ReadToken::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `ReadToken<'_, _>` -... -395 | pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - | --------------------------- function or associated item `new` not found for this struct - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following traits define an item `new`, perhaps you need to implement one of them: - candidate #1: `VariableOutputCore` - candidate #2: `Digest` - candidate #3: `VariableOutput` - candidate #4: `KeyInit` - candidate #5: `KeyIvInit` - candidate #6: `Bit` - candidate #7: `UniformSampler` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_001.log b/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_001.log deleted file mode 100644 index 53d3a464..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_001.log +++ /dev/null @@ -1,55 +0,0 @@ - -*** src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::new(Default::default())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::issue -> Result, Error> with Ok(ReadToken::new(Default::default())) -@@ -270,18 +270,17 @@ - c.init().await?; - Ok(c) - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { -- single::write_command(&mut self.stream, c).await?; -- Ok(ReadToken(self)) -+ Ok(ReadToken::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `new` found for struct `ReadToken` in the current scope - --> src/proto/client/mod.rs:278:23 - | -278 | Ok(ReadToken::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `ReadToken<'_, _>` -... -395 | pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - | --------------------------- function or associated item `new` not found for this struct - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following traits define an item `new`, perhaps you need to implement one of them: - candidate #1: `VariableOutputCore` - candidate #2: `Digest` - candidate #3: `VariableOutput` - candidate #4: `KeyInit` - candidate #5: `KeyIvInit` - candidate #6: `Bit` - candidate #7: `UniformSampler` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_002.log b/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_002.log deleted file mode 100644 index ab833ee7..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_002.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::from(Default::default())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::issue -> Result, Error> with Ok(ReadToken::from(Default::default())) -@@ -270,18 +270,17 @@ - c.init().await?; - Ok(c) - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { -- single::write_command(&mut self.stream, c).await?; -- Ok(ReadToken(self)) -+ Ok(ReadToken::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `ReadToken<'_, S>: Default` is not satisfied - --> src/proto/client/mod.rs:278:28 - | -278 | Ok(ReadToken::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ReadToken<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_003.log b/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_003.log deleted file mode 100644 index c7a3c984..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_278_col_9_003.log +++ /dev/null @@ -1,49 +0,0 @@ - -*** src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::from_iter([Default::default()])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::issue -> Result, Error> with Ok(ReadToken::from_iter([Default::default()])) -@@ -270,18 +270,17 @@ - c.init().await?; - Ok(c) - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { -- single::write_command(&mut self.stream, c).await?; -- Ok(ReadToken(self)) -+ Ok(ReadToken::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `ReadToken` in the current scope - --> src/proto/client/mod.rs:278:23 - | -278 | Ok(ReadToken::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `ReadToken<'_, _>` -... -395 | pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - | --------------------------- function or associated item `from_iter` not found for this struct - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_286_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_286_col_9.log deleted file mode 100644 index 626c4ecc..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_286_col_9.log +++ /dev/null @@ -1,64 +0,0 @@ - -*** src/proto/client/mod.rs:286:9: replace Client::fetch -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::fetch -> Result, Error> with Ok(Some(Default::default())) -@@ -278,20 +278,17 @@ - single::write_command(&mut self.stream, c).await?; - Ok(ReadToken(self)) - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { -- self.issue(&single::Fetch::from(queues)) -- .await? -- .read_json() -- .await -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn heartbeat(&mut self) -> Result { - single::write_command( - &mut self.stream, - &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), - ) - .await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Job: Default` is not satisfied - --> src/proto/client/mod.rs:286:17 - | -286 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Job` - | -help: consider annotating `Job` with `#[derive(Default)]` - --> src/proto/single/mod.rs:71:1 - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -error[E0277]: the trait bound `single::Job: Default` is not satisfied - --> src/proto/client/mod.rs:286:17 - | -286 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Job` - | -help: consider annotating `single::Job` with `#[derive(Default)]` - --> src/proto/single/mod.rs:71:1 - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_286_col_9_001.log b/mutants.out.old/log/src__proto__client__mod.rs_line_286_col_9_001.log deleted file mode 100644 index a4cfe45d..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_286_col_9_001.log +++ /dev/null @@ -1,148 +0,0 @@ - -*** src/proto/client/mod.rs:286:9: replace Client::fetch -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::fetch -> Result, Error> with Ok(None) -@@ -278,20 +278,17 @@ - single::write_command(&mut self.stream, c).await?; - Ok(ReadToken(self)) - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { -- self.issue(&single::Fetch::from(queues)) -- .await? -- .read_json() -- .await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn heartbeat(&mut self) -> Result { - single::write_command( - &mut self.stream, - &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), - ) - .await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.58s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.98s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "d\":139337,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "\"wid\":\"wid\",\"pid\":139337,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "d\":139337,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_293_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_293_col_9.log deleted file mode 100644 index afe86917..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_293_col_9.log +++ /dev/null @@ -1,62 +0,0 @@ - -*** src/proto/client/mod.rs:293:9: replace Client::heartbeat -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::heartbeat -> Result with Ok(Default::default()) -@@ -285,38 +285,17 @@ - { - self.issue(&single::Fetch::from(queues)) - .await? - .read_json() - .await - } - - pub(crate) async fn heartbeat(&mut self) -> Result { -- single::write_command( -- &mut self.stream, -- &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), -- ) -- .await?; -- -- match single::read_json::<_, serde_json::Value>(&mut self.stream).await? { -- None => Ok(HeartbeatStatus::Ok), -- Some(s) => match s -- .as_object() -- .and_then(|m| m.get("state")) -- .and_then(|s| s.as_str()) -- { -- Some("terminate") => Ok(HeartbeatStatus::Terminate), -- Some("quiet") => Ok(HeartbeatStatus::Quiet), -- _ => Err(error::Protocol::BadType { -- expected: "heartbeat response", -- received: format!("{}", s), -- } -- .into()), -- }, -- } -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - /// Asynchronously enqueue the given job on the Faktory server. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `HeartbeatStatus: Default` is not satisfied - --> src/proto/client/mod.rs:293:12 - | -293 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `HeartbeatStatus` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_326_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_326_col_9.log deleted file mode 100644 index 8f9f9021..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_326_col_9.log +++ /dev/null @@ -1,120 +0,0 @@ - -*** src/proto/client/mod.rs:326:9: replace Client::enqueue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue -> Result<(), Error> with Ok(()) -@@ -318,17 +318,17 @@ - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - /// Asynchronously enqueue the given job on the Faktory server. - /// - /// Returns `Ok` if the job was successfully queued by the Faktory server. - pub async fn enqueue(&mut self, job: Job) -> Result<(), Error> { -- self.issue(&Push::from(job)).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - /// Enqueue numerous jobs on the Faktory server. - /// - /// Provided you have numerous jobs to submit, using this method will be more efficient as compared - /// to calling [`enqueue`](Client::enqueue) multiple times. - /// - /// The returned `Ok` result will contain a tuple of enqueued jobs count and an option of a hash map - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.53s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.02s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.13s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... FAILED -test hello_pwd ... ok - -failures: - ----- enqueue stdout ---- -thread 'enqueue' panicked at tests/producer.rs:54:5: -assertion failed: written.starts_with(b"PUSH {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - enqueue - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9.log deleted file mode 100644 index df74ebb7..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), String::new())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), String::new())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::from_iter([(String::new(), String::new())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.56s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_client ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::enqueue_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_001.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_001.log deleted file mode 100644 index 7f245487..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_001.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.48s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.02s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test community::hello_worker ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::enqueue_job ... ok -test community::fail ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_002.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_002.log deleted file mode 100644 index 462c3389..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_002.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.50s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.03s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_worker ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::queue ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::fail ... ok -test community::multi ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_expiring_job ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_003.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_003.log deleted file mode 100644 index fc05cb05..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_003.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.54s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test community::queue ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_worker ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_004.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_004.log deleted file mode 100644 index 964aeff6..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_004.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, None)) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, None)) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, None)) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.82s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.99s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::queue ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_005.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_005.log deleted file mode 100644 index d1df2c11..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_005.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::new()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::new()))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::new()))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.48s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok -test community::hello_worker ... ok -test community::fail ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_006.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_006.log deleted file mode 100644 index 225e45f1..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_006.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, None)) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, None)) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, None)) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.90s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::roundtrip ... ok -test enterprise::ent_expiring_job ... ok -test community::enqueue_job ... ok -test community::hello_worker ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::fail ... ok -test community::multi ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_client ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_007.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_007.log deleted file mode 100644 index 301f3bf6..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_007.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), String::new())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), String::new())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::from_iter([(String::new(), String::new())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.58s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_008.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_008.log deleted file mode 100644 index a3cbafa9..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_008.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.67s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.32s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::fail ... ok -test community::queue ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_009.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_009.log deleted file mode 100644 index 286e747d..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_009.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.84s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.11s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.29s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test community::hello_worker ... ok -test community::multi ... ok -test community::hello_client ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::enqueue_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::fail ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_success ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_010.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_010.log deleted file mode 100644 index 6e97a21c..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_010.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::new()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::new()))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::new()))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.46s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.33s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::enqueue_job ... ok -test community::roundtrip ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test community::queue ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_011.log b/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_011.log deleted file mode 100644 index cb9f8f83..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_348_col_9_011.log +++ /dev/null @@ -1,179 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.68s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::queue ... ok -test community::fail ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_client ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_359_col_24.log b/mutants.out.old/log/src__proto__client__mod.rs_line_359_col_24.log deleted file mode 100644 index af660463..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_359_col_24.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/client/mod.rs:359:24: replace - with / in Client::enqueue_many - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace - with / in Client::enqueue_many -@@ -351,17 +351,17 @@ - .issue(&PushBulk::from(jobs.collect::>())) - .await? - .read_json() - .await? - .expect("Faktory server sends {} literal when there are no errors"); - if errors.is_empty() { - return Ok((jobs_count, None)); - } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((jobs_count / /* ~ changed by cargo-mutants ~ */ errors.len(), Some(errors))) - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.24s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.08s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.35s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::enqueue_job ... ok -test community::hello_client ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::queue ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_359_col_24_001.log b/mutants.out.old/log/src__proto__client__mod.rs_line_359_col_24_001.log deleted file mode 100644 index bad82d6d..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_359_col_24_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/client/mod.rs:359:24: replace - with + in Client::enqueue_many - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace - with + in Client::enqueue_many -@@ -351,17 +351,17 @@ - .issue(&PushBulk::from(jobs.collect::>())) - .await? - .read_json() - .await? - .expect("Faktory server sends {} literal when there are no errors"); - if errors.is_empty() { - return Ok((jobs_count, None)); - } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((jobs_count + /* ~ changed by cargo-mutants ~ */ errors.len(), Some(errors))) - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.51s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_worker ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::fail ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::queue ... ok -test community::hello_client ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_expiring_job ... ok -test community::enqueue_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_366_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_366_col_9.log deleted file mode 100644 index ff603c41..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_366_col_9.log +++ /dev/null @@ -1,172 +0,0 @@ - -*** src/proto/client/mod.rs:366:9: replace Client::info -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::info -> Result with Ok(Default::default()) -@@ -358,21 +358,17 @@ - } - Ok((jobs_count - errors.len(), Some(errors))) - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { -- self.issue(&Info) -- .await? -- .read_json() -- .await -- .map(|v| v.expect("info command cannot give empty response")) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - /// Pause the given queues. - pub async fn queue_pause(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { - self.issue(&QueueControl::new(QueueAction::Pause, queues)) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.92s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_worker ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::queue ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_378_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_378_col_9.log deleted file mode 100644 index 313a216b..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_378_col_9.log +++ /dev/null @@ -1,123 +0,0 @@ - -*** src/proto/client/mod.rs:378:9: replace Client::queue_pause -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::queue_pause -> Result<(), Error> with Ok(()) -@@ -370,20 +370,17 @@ - .map(|v| v.expect("info command cannot give empty response")) - } - - /// Pause the given queues. - pub async fn queue_pause(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { -- self.issue(&QueueControl::new(QueueAction::Pause, queues)) -- .await? -- .read_ok() -- .await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - /// Resume the given queues. - pub async fn queue_resume(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { - self.issue(&QueueControl::new(QueueAction::Resume, queues)) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.45s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... FAILED -test hello_pwd ... ok - -failures: - ----- queue_control stdout ---- -thread 'queue_control' panicked at tests/producer.rs:100:5: -assertion failed: written == b"QUEUE PAUSE test test2\r\nQUEUE RESUME test3 test4\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - queue_control - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_389_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_389_col_9.log deleted file mode 100644 index b812e89c..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_389_col_9.log +++ /dev/null @@ -1,123 +0,0 @@ - -*** src/proto/client/mod.rs:389:9: replace Client::queue_resume -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::queue_resume -> Result<(), Error> with Ok(()) -@@ -381,20 +381,17 @@ - .await - } - - /// Resume the given queues. - pub async fn queue_resume(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { -- self.issue(&QueueControl::new(QueueAction::Resume, queues)) -- .await? -- .read_ok() -- .await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send; - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.41s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.99s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... FAILED -test hello ... ok -test hello_pwd ... ok - -failures: - ----- queue_control stdout ---- -thread 'queue_control' panicked at tests/producer.rs:100:5: -assertion failed: written == b"QUEUE PAUSE test test2\r\nQUEUE RESUME test3 test4\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - queue_control - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_402_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_402_col_9.log deleted file mode 100644 index e2d7990e..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_402_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/client/mod.rs:402:9: replace ReadToken<'a, S>::read_ok -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace ReadToken<'a, S>::read_ok -> Result<(), Error> with Ok(()) -@@ -394,17 +394,17 @@ - } - - pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send; - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_ok(self) -> Result<(), Error> { -- single::read_ok(&mut self.0.stream).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn read_json(self) -> Result, Error> - where - T: serde::de::DeserializeOwned, - { - single::read_json(&mut self.0.stream).await - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::fail ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_409_col_9.log b/mutants.out.old/log/src__proto__client__mod.rs_line_409_col_9.log deleted file mode 100644 index f7720aa3..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_409_col_9.log +++ /dev/null @@ -1,139 +0,0 @@ - -*** src/proto/client/mod.rs:409:9: replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(None) -@@ -401,11 +401,11 @@ - pub(crate) async fn read_ok(self) -> Result<(), Error> { - single::read_ok(&mut self.0.stream).await - } - - pub(crate) async fn read_json(self) -> Result, Error> - where - T: serde::de::DeserializeOwned, - { -- single::read_json(&mut self.0.stream).await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.58s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "ault\r\nFETCH default\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "ault\r\nFETCH default\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "ault\r\nFETCH default\r\nFETCH default\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.17s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__client__mod.rs_line_409_col_9_001.log b/mutants.out.old/log/src__proto__client__mod.rs_line_409_col_9_001.log deleted file mode 100644 index 2ee8364f..00000000 --- a/mutants.out.old/log/src__proto__client__mod.rs_line_409_col_9_001.log +++ /dev/null @@ -1,40 +0,0 @@ - -*** src/proto/client/mod.rs:409:9: replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(Some(Default::default())) -@@ -401,11 +401,11 @@ - pub(crate) async fn read_ok(self) -> Result<(), Error> { - single::read_ok(&mut self.0.stream).await - } - - pub(crate) async fn read_json(self) -> Result, Error> - where - T: serde::de::DeserializeOwned, - { -- single::read_json(&mut self.0.stream).await -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `T: Default` is not satisfied - --> src/proto/client/mod.rs:409:17 - | -409 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `T` - | -help: consider further restricting this bound - | -407 | T: serde::de::DeserializeOwned + std::default::Default, - | +++++++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__mod.rs_line_39_col_9.log b/mutants.out.old/log/src__proto__mod.rs_line_39_col_9.log deleted file mode 100644 index 97d74c42..00000000 --- a/mutants.out.old/log/src__proto__mod.rs_line_39_col_9.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/mod.rs:39:9: replace ::reconnect -> io::Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/mod.rs -+++ replace ::reconnect -> io::Result with Ok(Default::default()) -@@ -31,18 +31,17 @@ - pub trait Reconnect: Sized { - /// Re-establish the stream. - async fn reconnect(&mut self) -> io::Result; - } - - #[async_trait::async_trait] - impl Reconnect for TokioStream { - async fn reconnect(&mut self) -> io::Result { -- let addr = &self.peer_addr().expect("socket address"); -- TokioStream::connect(addr).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - #[async_trait::async_trait] - impl Reconnect for BufStream - where - S: AsyncRead + AsyncWrite + Reconnect + Send + Sync, - { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `tokio::net::TcpStream: Default` is not satisfied - --> src/proto/mod.rs:39:12 - | -39 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tokio::net::TcpStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__mod.rs_line_50_col_9.log b/mutants.out.old/log/src__proto__mod.rs_line_50_col_9.log deleted file mode 100644 index 43360482..00000000 --- a/mutants.out.old/log/src__proto__mod.rs_line_50_col_9.log +++ /dev/null @@ -1,36 +0,0 @@ - -*** src/proto/mod.rs:50:9: replace >::reconnect -> io::Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/mod.rs -+++ replace >::reconnect -> io::Result with Ok(Default::default()) -@@ -42,12 +42,11 @@ - } - - #[async_trait::async_trait] - impl Reconnect for BufStream - where - S: AsyncRead + AsyncWrite + Reconnect + Send + Sync, - { - async fn reconnect(&mut self) -> io::Result { -- let stream = self.get_mut().reconnect().await?; -- Ok(Self::new(stream)) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `BufStream: Default` is not satisfied - --> src/proto/mod.rs:50:12 - | -50 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BufStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_109_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_109_col_9.log deleted file mode 100644 index d4c8dbd8..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_109_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/cmd.rs:109:9: replace Fail::generic -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace Fail::generic -> Self with Default::default() -@@ -101,17 +101,17 @@ - backtrace: Vec::new(), - } - } - - // Used for all kind of errors not related to domain logic, e.g. missing handler for this type of job (i.e. - // the worker consumed a job from a specified queue, but has no tool to process it). - // Note that "unknown" is the error type used by the Go library in such cases too. - pub(crate) fn generic>(job_id: JobId, message: S) -> Self { -- Fail::new(job_id, "unknown", message) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn set_backtrace(&mut self, lines: Vec) { - self.backtrace = lines; - } - - // For any application errors (all kind of errors that could happen in userland when handling the job) - // we want to send backtrace (split into lines) to the Faktory server so that whoever is interested in - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `single::cmd::Fail: Default` is not satisfied - --> src/proto/single/cmd.rs:109:9 - | -109 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::cmd::Fail` - | -help: consider annotating `single::cmd::Fail` with `#[derive(Default)]` - | -85 + #[derive(Default)] -86 | pub(crate) struct Fail { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_113_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_113_col_9.log deleted file mode 100644 index 65460a77..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_113_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/cmd.rs:113:9: replace Fail::set_backtrace with () - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace Fail::set_backtrace with () -@@ -105,17 +105,17 @@ - // Used for all kind of errors not related to domain logic, e.g. missing handler for this type of job (i.e. - // the worker consumed a job from a specified queue, but has no tool to process it). - // Note that "unknown" is the error type used by the Go library in such cases too. - pub(crate) fn generic>(job_id: JobId, message: S) -> Self { - Fail::new(job_id, "unknown", message) - } - - pub(crate) fn set_backtrace(&mut self, lines: Vec) { -- self.backtrace = lines; -+ () /* ~ changed by cargo-mutants ~ */ - } - - // For any application errors (all kind of errors that could happen in userland when handling the job) - // we want to send backtrace (split into lines) to the Faktory server so that whoever is interested in - // the job result could follow the trace (for debugging essentially). - pub(crate) fn generic_with_backtrace(jid: JobId, e: E) -> Self - where - E: StdError, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.22s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.97s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::enqueue_job ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job ... ok -test community::hello_worker ... ok -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_123_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_123_col_9.log deleted file mode 100644 index c6e21481..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_123_col_9.log +++ /dev/null @@ -1,55 +0,0 @@ - -*** src/proto/single/cmd.rs:123:9: replace Fail::generic_with_backtrace -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace Fail::generic_with_backtrace -> Self with Default::default() -@@ -115,25 +115,17 @@ - - // For any application errors (all kind of errors that could happen in userland when handling the job) - // we want to send backtrace (split into lines) to the Faktory server so that whoever is interested in - // the job result could follow the trace (for debugging essentially). - pub(crate) fn generic_with_backtrace(jid: JobId, e: E) -> Self - where - E: StdError, - { -- let mut f = Fail::generic(jid, format!("{}", e)); -- let mut root = e.source(); -- let mut lines = Vec::new(); -- while let Some(r) = root.take() { -- lines.push(format!("{}", r)); -- root = r.source(); -- } -- f.set_backtrace(lines); -- f -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - self_to_cmd!(Fail, "FAIL"); - - // ---------------------- END -------------------- - - pub(crate) struct End; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `single::cmd::Fail: Default` is not satisfied - --> src/proto/single/cmd.rs:123:9 - | -123 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::cmd::Fail` - | -help: consider annotating `single::cmd::Fail` with `#[derive(Default)]` - | -85 + #[derive(Default)] -86 | pub(crate) struct Fail { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_144_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_144_col_9.log deleted file mode 100644 index abf67f65..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_144_col_9.log +++ /dev/null @@ -1,138 +0,0 @@ - -*** src/proto/single/cmd.rs:144:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -136,17 +136,17 @@ - - // ---------------------- END -------------------- - - pub(crate) struct End; - - #[async_trait::async_trait] - impl FaktoryCommand for End { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- Ok(w.write_all(b"END\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // --------------------- FETCH -------------------- - - pub(crate) struct Fetch<'a, S> - where - S: AsRef, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.40s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.35s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:32:5: -assertion `left == right` failed - left: [] - right: [69, 78, 68, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:400:5: -assertion failed: written.ends_with(b"\r\nEND\r\n") - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - hello - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_163_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_163_col_9.log deleted file mode 100644 index 9d026a12..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_163_col_9.log +++ /dev/null @@ -1,150 +0,0 @@ - -*** src/proto/single/cmd.rs:163:9: replace >::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace >::issue -> Result<(), Error> with Ok(()) -@@ -155,19 +155,17 @@ - } - - #[async_trait::async_trait] - impl<'a, Q> FaktoryCommand for Fetch<'a, Q> - where - Q: AsRef + Sync, - { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- w.write_all(b"FETCH").await?; -- write_queues(w, self.queues).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl<'a, S> From<&'a [S]> for Fetch<'a, S> - where - S: AsRef + 'a, - { - fn from(queues: &'a [S]) -> Self { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.62s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.33s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- terminate stdout ---- -{"jid":"forever","errtype":"unknown","message":"terminated"} -thread 'terminate' panicked at tests/consumer.rs:420:5: -assertion `left == right` failed - left: "[\"rust\"],\"v\":2}\r\n" - right: "\r\nFETCH default\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "23691,\"labels\":[\"rust\"],\"v\":2}\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "[\"rust\"],\"v\":2}\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "[\"rust\"],\"v\":2}\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_174_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_174_col_9.log deleted file mode 100644 index 464bb0f5..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_174_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/cmd.rs:174:9: replace >::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace >::from -> Self with Default::default() -@@ -166,17 +166,17 @@ - } - } - - impl<'a, S> From<&'a [S]> for Fetch<'a, S> - where - S: AsRef + 'a, - { - fn from(queues: &'a [S]) -> Self { -- Fetch { queues } -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - // --------------------- HELLO -------------------- - - #[derive(Serialize)] - pub(crate) struct Hello { - #[serde(skip_serializing_if = "Option::is_none")] - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `single::cmd::Fetch<'_, S>: Default` is not satisfied - --> src/proto/single/cmd.rs:174:9 - | -174 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::cmd::Fetch<'_, S>` - | -help: consider annotating `single::cmd::Fetch<'_, S>` with `#[derive(Default)]` - | -150 + #[derive(Default)] -151 | pub(crate) struct Fetch<'a, S> - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_215_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_215_col_9.log deleted file mode 100644 index f1adacc4..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_215_col_9.log +++ /dev/null @@ -1,120 +0,0 @@ - -*** src/proto/single/cmd.rs:215:9: replace Hello::set_password with () - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace Hello::set_password with () -@@ -207,25 +207,17 @@ - password_hash: None, - version: crate::proto::EXPECTED_PROTOCOL_VERSION, - } - } - } - - impl Hello { - pub fn set_password(&mut self, hi: &super::resp::Hi, password: &str) { -- use sha2::{Digest, Sha256}; -- let mut hasher = Sha256::default(); -- hasher.update(password.as_bytes()); -- hasher.update(hi.salt.as_ref().unwrap().as_bytes()); -- let mut hash = hasher.finalize(); -- for _ in 1..hi.iterations.unwrap_or(1) { -- hash = Sha256::digest(&hash[..]); -- } -- self.password_hash = Some(format!("{:x}", hash)); -+ () /* ~ changed by cargo-mutants ~ */ - } - } - - self_to_cmd!(Hello, "HELLO"); - - // --------------------- PUSH -------------------- - - pub(crate) struct Push(Job); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 2.46s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... FAILED -test hello ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -failures: - ----- hello_pwd stdout ---- -thread 'hello_pwd' panicked at tests/consumer.rs:49:5: -assertion `left == right` failed - left: None - right: Some("6d877f8e5544b1f2598768f817413ab8a357afffa924dedae99eb91472d4ec30") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - hello_pwd - -test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_237_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_237_col_9.log deleted file mode 100644 index 294ae6c4..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_237_col_9.log +++ /dev/null @@ -1,61 +0,0 @@ - -*** src/proto/single/cmd.rs:237:9: replace ::deref -> &Self::Target with &Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::deref -> &Self::Target with &Default::default() -@@ -229,17 +229,17 @@ - // --------------------- PUSH -------------------- - - pub(crate) struct Push(Job); - - use std::ops::Deref; - impl Deref for Push { - type Target = Job; - fn deref(&self) -> &Self::Target { -- &self.0 -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl From for Push { - fn from(j: Job) -> Self { - Push(j) - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Job: Default` is not satisfied - --> src/proto/single/cmd.rs:237:10 - | -237 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Job` - | -help: consider annotating `Job` with `#[derive(Default)]` - --> src/proto/single/mod.rs:71:1 - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::Job: Default` is not satisfied - --> src/proto/single/cmd.rs:237:10 - | -237 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Job` - | -help: consider annotating `single::Job` with `#[derive(Default)]` - --> src/proto/single/mod.rs:71:1 - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_243_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_243_col_9.log deleted file mode 100644 index b3032ed7..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_243_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/single/cmd.rs:243:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::from -> Self with Default::default() -@@ -235,17 +235,17 @@ - type Target = Job; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - - impl From for Push { - fn from(j: Job) -> Self { -- Push(j) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[async_trait::async_trait] - impl FaktoryCommand for Push { - async fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"PUSH ").await?; - let r = serde_json::to_vec(&**self).map_err(Error::Serialization)?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `single::cmd::Push: Default` is not satisfied - --> src/proto/single/cmd.rs:243:9 - | -243 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::cmd::Push` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_250_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_250_col_9.log deleted file mode 100644 index b7b0f5e7..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_250_col_9.log +++ /dev/null @@ -1,123 +0,0 @@ - -*** src/proto/single/cmd.rs:250:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -242,20 +242,17 @@ - fn from(j: Job) -> Self { - Push(j) - } - } - - #[async_trait::async_trait] - impl FaktoryCommand for Push { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- w.write_all(b"PUSH ").await?; -- let r = serde_json::to_vec(&**self).map_err(Error::Serialization)?; -- w.write_all(&r).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // ---------------------- PUSHB ------------------- - - pub(crate) struct PushBulk(Vec); - - impl From> for PushBulk { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.29s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.99s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... FAILED -test hello ... ok -test hello_pwd ... ok - -failures: - ----- enqueue stdout ---- -thread 'enqueue' panicked at tests/producer.rs:54:5: -assertion failed: written.starts_with(b"PUSH {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - enqueue - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_263_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_263_col_9.log deleted file mode 100644 index f2bd2c5c..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_263_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/cmd.rs:263:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::from -> Self with Default::default() -@@ -255,17 +255,17 @@ - } - - // ---------------------- PUSHB ------------------- - - pub(crate) struct PushBulk(Vec); - - impl From> for PushBulk { - fn from(jobs: Vec) -> Self { -- PushBulk(jobs) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[async_trait::async_trait] - impl FaktoryCommand for PushBulk { - async fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"PUSHB ").await?; - let r = serde_json::to_vec(&self.0).map_err(Error::Serialization)?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `single::cmd::PushBulk: Default` is not satisfied - --> src/proto/single/cmd.rs:263:9 - | -263 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::cmd::PushBulk` - | -help: consider annotating `single::cmd::PushBulk` with `#[derive(Default)]` - | -259 + #[derive(Default)] -260 | pub(crate) struct PushBulk(Vec); - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_270_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_270_col_9.log deleted file mode 100644 index 9897c84b..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_270_col_9.log +++ /dev/null @@ -1,171 +0,0 @@ - -*** src/proto/single/cmd.rs:270:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -262,20 +262,17 @@ - fn from(jobs: Vec) -> Self { - PushBulk(jobs) - } - } - - #[async_trait::async_trait] - impl FaktoryCommand for PushBulk { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- w.write_all(b"PUSHB ").await?; -- let r = serde_json::to_vec(&self.0).map_err(Error::Serialization)?; -- w.write_all(&r).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // ---------------------- QUEUE ------------------- - - pub(crate) enum QueueAction { - Pause, - Resume, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.38s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::enqueue_job ... ok -test community::roundtrip ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_worker ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::multi ... ok -test community::hello_client ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::queue ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_298_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_298_col_9.log deleted file mode 100644 index 7df72f6d..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_298_col_9.log +++ /dev/null @@ -1,125 +0,0 @@ - -*** src/proto/single/cmd.rs:298:9: replace >::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace >::issue -> Result<(), Error> with Ok(()) -@@ -290,22 +290,16 @@ - } - - #[async_trait::async_trait] - impl FaktoryCommand for QueueControl<'_, Q> - where - Q: AsRef + Sync, - { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- let command = match self.action { -- QueueAction::Pause => b"QUEUE PAUSE".as_ref(), -- QueueAction::Resume => b"QUEUE RESUME".as_ref(), -- }; -- w.write_all(command).await?; -- write_queues(w, self.queues).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - impl<'a, S: AsRef> QueueControl<'a, S> { - pub fn new(action: QueueAction, queues: &'a [S]) -> Self { - Self { action, queues } - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.31s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... FAILED -test enqueue ... ok -test hello_pwd ... ok - -failures: - ----- queue_control stdout ---- -thread 'queue_control' panicked at tests/producer.rs:100:5: -assertion failed: written == b"QUEUE PAUSE test test2\r\nQUEUE RESUME test3 test4\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - queue_control - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_33_col_5.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_33_col_5.log deleted file mode 100644 index 8953e469..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_33_col_5.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/single/cmd.rs:33:5: replace write_queues -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace write_queues -> Result<(), Error> with Ok(()) -@@ -25,22 +25,17 @@ - - /// Write queues as part of a command. They are written with a leading space - /// followed by space separated queue names. - async fn write_queues(w: &mut W, queues: &[S]) -> Result<(), Error> - where - W: AsyncWriteExt + Unpin + Send, - S: AsRef, - { -- for q in queues { -- w.write_all(b" ").await?; -- w.write_all(q.as_ref().as_bytes()).await?; -- } -- -- Ok(()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - // -------------------- INFO ---------------------- - - pub(crate) struct Info; - - #[async_trait::async_trait] - impl FaktoryCommand for Info { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.25s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.99s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 13, 10, 70, 69, 84, 67, 72, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- terminate stdout ---- -{"jid":"forever","errtype":"unknown","message":"terminated"} -thread 'terminate' panicked at tests/consumer.rs:420:5: -assertion `left == right` failed - left: "],\"v\":2}\r\nFETCH\r\n" - right: "\r\nFETCH default\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "],\"v\":2}\r\nFETCH\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: ":[\"rust\"],\"v\":2}\r\nFETCH\r\nFETCH\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "],\"v\":2}\r\nFETCH\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__cmd.rs_line_48_col_9.log b/mutants.out.old/log/src__proto__single__cmd.rs_line_48_col_9.log deleted file mode 100644 index da3dc2db..00000000 --- a/mutants.out.old/log/src__proto__single__cmd.rs_line_48_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/cmd.rs:48:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -40,17 +40,17 @@ - - // -------------------- INFO ---------------------- - - pub(crate) struct Info; - - #[async_trait::async_trait] - impl FaktoryCommand for Info { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- Ok(w.write_all(b"INFO\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // -------------------- ACK ---------------------- - - #[derive(Serialize)] - pub(crate) struct Ack { - jid: JobId, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.54s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::queue ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__ent__cmd.rs_line_15_col_9.log b/mutants.out.old/log/src__proto__single__ent__cmd.rs_line_15_col_9.log deleted file mode 100644 index 1998d567..00000000 --- a/mutants.out.old/log/src__proto__single__ent__cmd.rs_line_15_col_9.log +++ /dev/null @@ -1,174 +0,0 @@ - -*** src/proto/single/ent/cmd.rs:15:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/ent/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -7,23 +7,11 @@ - pub enum Track { - Set(ProgressUpdate), - Get(JobId), - } - - #[async_trait::async_trait] - impl FaktoryCommand for Track { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- match self { -- Self::Set(upd) => { -- w.write_all(b"TRACK SET ").await?; -- let r = serde_json::to_vec(upd).map_err(Error::Serialization)?; -- w.write_all(&r).await?; -- Ok(w.write_all(b"\r\n").await?) -- } -- Self::Get(jid) => { -- w.write_all(b"TRACK GET ").await?; -- w.write_all(jid.as_bytes()).await?; -- Ok(w.write_all(b"\r\n").await?) -- } -- } -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.55s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::queue ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_25_col_9.log b/mutants.out.old/log/src__proto__single__ent__mod.rs_line_25_col_9.log deleted file mode 100644 index 286da7fe..00000000 --- a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_25_col_9.log +++ /dev/null @@ -1,62 +0,0 @@ - -*** src/proto/single/ent/mod.rs:25:9: replace JobBuilder::expires_at -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::expires_at -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -17,20 +17,17 @@ - /// # use faktory::JobBuilder; - /// # use chrono::{Duration, Utc}; - /// let _job = JobBuilder::new("order") - /// .args(vec!["ISBN-14:9781718501850"]) - /// .expires_at(Utc::now() + Duration::hours(0)) - /// .build(); - /// ``` - pub fn expires_at(&mut self, dt: DateTime) -> &mut Self { -- self.add_to_custom_data( -- "expires_at", -- dt.to_rfc3339_opts(chrono::SecondsFormat::Nanos, true), -- ) -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// In what period of time from now (UTC) the Faktory should expire this job. - /// - /// Under the hood, the method will call `Utc::now` and add the provided `ttl` duration. - /// You can use this setter when you have a duration rather than some exact date and time, - /// expected by [`expires_at`](JobBuilder::expires_at) setter. - /// Example usage: - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:25:28 - | -25 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:25:28 - | -25 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_36.log b/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_36.log deleted file mode 100644 index 623bc8ce..00000000 --- a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_36.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/ent/mod.rs:46:36: replace + with - in JobBuilder::expires_in - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace + with - in JobBuilder::expires_in -@@ -38,17 +38,17 @@ - /// # use faktory::JobBuilder; - /// # use chrono::Duration; - /// let _job = JobBuilder::new("order") - /// .args(vec!["ISBN-14:9781718501850"]) - /// .expires_in(Duration::weeks(0)) - /// .build(); - /// ``` - pub fn expires_in(&mut self, ttl: chrono::Duration) -> &mut Self { -- self.expires_at(Utc::now() + ttl) -+ self.expires_at(Utc::now() - /* ~ changed by cargo-mutants ~ */ ttl) - } - - /// How long the Faktory will not accept duplicates of this job. - /// - /// The job will be considered unique for the kind-args-queue combination. The uniqueness is best-effort, - /// rather than a guarantee. Check out the Enterprise Faktory [docs](https://github.com/contribsys/faktory/wiki/Ent-Unique-Jobs) - /// for details on how scheduling, retries, and other features live together with `unique_for`. - /// - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.13s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.06s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test community::roundtrip ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test community::queue ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log b/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log deleted file mode 100644 index c33500eb..00000000 --- a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log +++ /dev/null @@ -1,51 +0,0 @@ - -*** src/proto/single/ent/mod.rs:46:36: replace + with * in JobBuilder::expires_in - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace + with * in JobBuilder::expires_in -@@ -38,17 +38,17 @@ - /// # use faktory::JobBuilder; - /// # use chrono::Duration; - /// let _job = JobBuilder::new("order") - /// .args(vec!["ISBN-14:9781718501850"]) - /// .expires_in(Duration::weeks(0)) - /// .build(); - /// ``` - pub fn expires_in(&mut self, ttl: chrono::Duration) -> &mut Self { -- self.expires_at(Utc::now() + ttl) -+ self.expires_at(Utc::now() * /* ~ changed by cargo-mutants ~ */ ttl) - } - - /// How long the Faktory will not accept duplicates of this job. - /// - /// The job will be considered unique for the kind-args-queue combination. The uniqueness is best-effort, - /// rather than a guarantee. Check out the Enterprise Faktory [docs](https://github.com/contribsys/faktory/wiki/Ent-Unique-Jobs) - /// for details on how scheduling, retries, and other features live together with `unique_for`. - /// - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0369]: cannot multiply `DateTime` by `TimeDelta` - --> src/proto/single/ent/mod.rs:46:36 - | -46 | self.expires_at(Utc::now() * /* ~ changed by cargo-mutants ~ */ ttl) - | ---------- ^ --- TimeDelta - | | - | DateTime - -For more information about this error, try `rustc --explain E0369`. -error[E0369]: cannot multiply `DateTime` by `TimeDelta` - --> src/proto/single/ent/mod.rs:46:36 - | -46 | self.expires_at(Utc::now() * /* ~ changed by cargo-mutants ~ */ ttl) - | ---------- ^ --- TimeDelta - | | - | DateTime - -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_9.log b/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_9.log deleted file mode 100644 index 2159e061..00000000 --- a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_46_col_9.log +++ /dev/null @@ -1,59 +0,0 @@ - -*** src/proto/single/ent/mod.rs:46:9: replace JobBuilder::expires_in -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::expires_in -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -38,17 +38,17 @@ - /// # use faktory::JobBuilder; - /// # use chrono::Duration; - /// let _job = JobBuilder::new("order") - /// .args(vec!["ISBN-14:9781718501850"]) - /// .expires_in(Duration::weeks(0)) - /// .build(); - /// ``` - pub fn expires_in(&mut self, ttl: chrono::Duration) -> &mut Self { -- self.expires_at(Utc::now() + ttl) -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// How long the Faktory will not accept duplicates of this job. - /// - /// The job will be considered unique for the kind-args-queue combination. The uniqueness is best-effort, - /// rather than a guarantee. Check out the Enterprise Faktory [docs](https://github.com/contribsys/faktory/wiki/Ent-Unique-Jobs) - /// for details on how scheduling, retries, and other features live together with `unique_for`. - /// - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:46:28 - | -46 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:46:28 - | -46 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_60_col_9.log b/mutants.out.old/log/src__proto__single__ent__mod.rs_line_60_col_9.log deleted file mode 100644 index 1ae47fdd..00000000 --- a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_60_col_9.log +++ /dev/null @@ -1,59 +0,0 @@ - -*** src/proto/single/ent/mod.rs:60:9: replace JobBuilder::unique_for -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::unique_for -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -52,17 +52,17 @@ - /// rather than a guarantee. Check out the Enterprise Faktory [docs](https://github.com/contribsys/faktory/wiki/Ent-Unique-Jobs) - /// for details on how scheduling, retries, and other features live together with `unique_for`. - /// - /// If you've already created and pushed a unique job (job "A") to the Faktory server and now have got another one - /// of same kind, with the same args and destined for the same queue (job "B") and you would like - for some reason - to - /// bypass the unique constraint, simply leave `unique_for` field on the job's custom hash empty, i.e. do not use this setter. - /// In this case, the Faktory server will accept job "B", though technically this job "B" is a duplicate. - pub fn unique_for(&mut self, secs: usize) -> &mut Self { -- self.add_to_custom_data("unique_for", secs) -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Remove unique lock for this job right before the job starts executing. - /// - /// Another job with the same kind-args-queue combination will be accepted by the Faktory server - /// after the period specified in [`unique_for`](JobBuilder::unique_for) has finished - /// _or_ after this job has been been consumed (i.e. its execution has ***started***). - pub fn unique_until_start(&mut self) -> &mut Self { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:60:28 - | -60 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:60:28 - | -60 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_69_col_9.log b/mutants.out.old/log/src__proto__single__ent__mod.rs_line_69_col_9.log deleted file mode 100644 index 7a110484..00000000 --- a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_69_col_9.log +++ /dev/null @@ -1,59 +0,0 @@ - -*** src/proto/single/ent/mod.rs:69:9: replace JobBuilder::unique_until_start -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::unique_until_start -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -61,17 +61,17 @@ - } - - /// Remove unique lock for this job right before the job starts executing. - /// - /// Another job with the same kind-args-queue combination will be accepted by the Faktory server - /// after the period specified in [`unique_for`](JobBuilder::unique_for) has finished - /// _or_ after this job has been been consumed (i.e. its execution has ***started***). - pub fn unique_until_start(&mut self) -> &mut Self { -- self.add_to_custom_data("unique_until", "start") -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Do not remove unique lock for this job until it successfully finishes. - /// - /// Sets `unique_until` on the Job's custom hash to `success`, which is Faktory's default. - /// Another job with the same kind-args-queue combination will be accepted by the Faktory server - /// after the period specified in [`unique_for`](JobBuilder::unique_for) has finished - /// _or_ after this job has been been ***successfully*** processed. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:69:28 - | -69 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:69:28 - | -69 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_79_col_9.log b/mutants.out.old/log/src__proto__single__ent__mod.rs_line_79_col_9.log deleted file mode 100644 index 8b88eca5..00000000 --- a/mutants.out.old/log/src__proto__single__ent__mod.rs_line_79_col_9.log +++ /dev/null @@ -1,59 +0,0 @@ - -*** src/proto/single/ent/mod.rs:79:9: replace JobBuilder::unique_until_success -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::unique_until_success -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -71,17 +71,17 @@ - - /// Do not remove unique lock for this job until it successfully finishes. - /// - /// Sets `unique_until` on the Job's custom hash to `success`, which is Faktory's default. - /// Another job with the same kind-args-queue combination will be accepted by the Faktory server - /// after the period specified in [`unique_for`](JobBuilder::unique_for) has finished - /// _or_ after this job has been been ***successfully*** processed. - pub fn unique_until_success(&mut self) -> &mut Self { -- self.add_to_custom_data("unique_until", "success") -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - #[cfg(test)] - mod test { - use crate::JobBuilder; - use chrono::{DateTime, Utc}; - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:79:28 - | -79 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:79:28 - | -79 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_102_col_9.log b/mutants.out.old/log/src__proto__single__ent__progress.rs_line_102_col_9.log deleted file mode 100644 index 19513faf..00000000 --- a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_102_col_9.log +++ /dev/null @@ -1,177 +0,0 @@ - -*** src/proto/single/ent/progress.rs:102:9: replace ::fmt -> std::fmt::Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace ::fmt -> std::fmt::Result with Ok(Default::default()) -@@ -94,26 +94,17 @@ - Failed, - - /// The jobs has been consumed but its status has never been updated. - Dead, - } - - impl std::fmt::Display for JobState { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { -- use JobState::*; -- let s = match self { -- Unknown => "unknown", -- Enqueued => "enqueued", -- Working => "working", -- Success => "success", -- Failed => "failed", -- Dead => "dead", -- }; -- write!(f, "{}", s) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - /// Info on job execution progress (retrieved). - /// - /// The tracker is guaranteed to get the following details: the job's id (though they should - /// know it beforehand in order to be ably to track the job), its last known [`state`](JobState), and - /// the date and time the job was last updated. Additionally, arbitrary information on what's going - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.32s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_146_col_9.log b/mutants.out.old/log/src__proto__single__ent__progress.rs_line_146_col_9.log deleted file mode 100644 index 3495fc0b..00000000 --- a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_146_col_9.log +++ /dev/null @@ -1,49 +0,0 @@ - -*** src/proto/single/ent/progress.rs:146:9: replace Progress::update_percent -> ProgressUpdate with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace Progress::update_percent -> ProgressUpdate with Default::default() -@@ -138,19 +138,16 @@ - pub desc: Option, - } - - impl Progress { - /// Create an instance of `ProgressUpdate` for the job updating its completion percentage. - /// - /// This will copy the [`desc`](Progress::desc) from the `Progress` (retrieved) over to `ProgressUpdate` (to be sent). - pub fn update_percent(&self, percent: u8) -> ProgressUpdate { -- ProgressUpdate::builder(self.jid.clone()) -- .desc(self.desc.clone()) -- .percent(percent) -- .build() -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create an instance of `ProgressUpdateBuilder` for the job. - pub fn update_builder(&self) -> ProgressUpdateBuilder { - ProgressUpdateBuilder::new(self.jid.clone()) - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `ProgressUpdate: Default` is not satisfied - --> src/proto/single/ent/progress.rs:146:9 - | -146 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdate` - | -help: consider annotating `ProgressUpdate` with `#[derive(Default)]` - | -17 + #[derive(Default)] -18 | pub struct ProgressUpdate { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_154_col_9.log b/mutants.out.old/log/src__proto__single__ent__progress.rs_line_154_col_9.log deleted file mode 100644 index f4a21fff..00000000 --- a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_154_col_9.log +++ /dev/null @@ -1,40 +0,0 @@ - -*** src/proto/single/ent/progress.rs:154:9: replace Progress::update_builder -> ProgressUpdateBuilder with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace Progress::update_builder -> ProgressUpdateBuilder with Default::default() -@@ -146,11 +146,11 @@ - ProgressUpdate::builder(self.jid.clone()) - .desc(self.desc.clone()) - .percent(percent) - .build() - } - - /// Create an instance of `ProgressUpdateBuilder` for the job. - pub fn update_builder(&self) -> ProgressUpdateBuilder { -- ProgressUpdateBuilder::new(self.jid.clone()) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `ProgressUpdateBuilder: Default` is not satisfied - --> src/proto/single/ent/progress.rs:154:9 - | -154 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdateBuilder` - | -help: consider annotating `ProgressUpdateBuilder` with `#[derive(Default)]` - | -11 | #[derive(Debug, Clone, Serialize, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_44_col_9.log b/mutants.out.old/log/src__proto__single__ent__progress.rs_line_44_col_9.log deleted file mode 100644 index 23280a09..00000000 --- a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_44_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/ent/progress.rs:44:9: replace ProgressUpdate::set -> ProgressUpdate with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace ProgressUpdate::set -> ProgressUpdate with Default::default() -@@ -36,17 +36,17 @@ - #[serde(skip_serializing_if = "Option::is_none")] - #[builder(default = "None")] - pub reserve_until: Option>, - } - - impl ProgressUpdate { - /// Create an instance of `ProgressUpdate` for the job with this ID specifying its completion percentage. - pub fn set(jid: JobId, percent: u8) -> ProgressUpdate { -- ProgressUpdate::builder(jid).percent(percent).build() -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new instance of `ProgressUpdateBuilder` with job ID already set. - /// - /// Equivalent to creating a [new](struct.ProgressUpdateBuilder.html#method.new) - /// `ProgressUpdateBuilder`. - pub fn builder(jid: JobId) -> ProgressUpdateBuilder { - ProgressUpdateBuilder::new(jid) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `ProgressUpdate: Default` is not satisfied - --> src/proto/single/ent/progress.rs:44:9 - | -44 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdate` - | -help: consider annotating `ProgressUpdate` with `#[derive(Default)]` - | -17 + #[derive(Default)] -18 | pub struct ProgressUpdate { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_52_col_9.log b/mutants.out.old/log/src__proto__single__ent__progress.rs_line_52_col_9.log deleted file mode 100644 index 1290dce2..00000000 --- a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_52_col_9.log +++ /dev/null @@ -1,46 +0,0 @@ - -*** src/proto/single/ent/progress.rs:52:9: replace ProgressUpdate::builder -> ProgressUpdateBuilder with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace ProgressUpdate::builder -> ProgressUpdateBuilder with Default::default() -@@ -44,17 +44,17 @@ - ProgressUpdate::builder(jid).percent(percent).build() - } - - /// Create a new instance of `ProgressUpdateBuilder` with job ID already set. - /// - /// Equivalent to creating a [new](struct.ProgressUpdateBuilder.html#method.new) - /// `ProgressUpdateBuilder`. - pub fn builder(jid: JobId) -> ProgressUpdateBuilder { -- ProgressUpdateBuilder::new(jid) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl ProgressUpdateBuilder { - /// Builds an instance of ProgressUpdate. - pub fn build(&self) -> ProgressUpdate { - self.try_build() - .expect("Only jid is required, and it is set by all constructors.") - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `ProgressUpdateBuilder: Default` is not satisfied - --> src/proto/single/ent/progress.rs:52:9 - | -52 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdateBuilder` - | -help: consider annotating `ProgressUpdateBuilder` with `#[derive(Default)]` - | -11 | #[derive(Debug, Clone, Serialize, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_59_col_9.log b/mutants.out.old/log/src__proto__single__ent__progress.rs_line_59_col_9.log deleted file mode 100644 index a14207cb..00000000 --- a/mutants.out.old/log/src__proto__single__ent__progress.rs_line_59_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/proto/single/ent/progress.rs:59:9: replace ProgressUpdateBuilder::build -> ProgressUpdate with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace ProgressUpdateBuilder::build -> ProgressUpdate with Default::default() -@@ -51,18 +51,17 @@ - pub fn builder(jid: JobId) -> ProgressUpdateBuilder { - ProgressUpdateBuilder::new(jid) - } - } - - impl ProgressUpdateBuilder { - /// Builds an instance of ProgressUpdate. - pub fn build(&self) -> ProgressUpdate { -- self.try_build() -- .expect("Only jid is required, and it is set by all constructors.") -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new instance of `JobBuilder` - pub fn new(jid: JobId) -> ProgressUpdateBuilder { - ProgressUpdateBuilder { - jid: Some(jid), - ..ProgressUpdateBuilder::create_empty() - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `ProgressUpdate: Default` is not satisfied - --> src/proto/single/ent/progress.rs:59:9 - | -59 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdate` - | -help: consider annotating `ProgressUpdate` with `#[derive(Default)]` - | -17 + #[derive(Default)] -18 | pub struct ProgressUpdate { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5.log b/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5.log deleted file mode 100644 index 5ef3f4c5..00000000 --- a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5.log +++ /dev/null @@ -1,57 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from(Default::default()))) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from(Default::default()))) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(Some(DateTime::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0283]: type annotations needed - --> src/proto/single/ent/utils.rs:13:13 - | -13 | Ok(Some(DateTime::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^ cannot infer type for type parameter `T` declared on the trait `From` - | - = note: multiple `impl`s satisfying `DateTime: From<_>` found in the following crates: `chrono`, `core`: - - impl From> for DateTime; - - impl From> for DateTime; - - impl From for DateTime; - - impl From for T; - - impl From for T; - -For more information about this error, try `rustc --explain E0283`. -error[E0283]: type annotations needed - --> src/proto/single/ent/utils.rs:13:13 - | -13 | Ok(Some(DateTime::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^ cannot infer type for type parameter `T` declared on the trait `From` - | - = note: multiple `impl`s satisfying `DateTime: From<_>` found in the following crates: `chrono`, `core`: - - impl From> for DateTime; - - impl From> for DateTime; - - impl From for DateTime; - - impl From for T; - - impl From for T; - -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log b/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log deleted file mode 100644 index 4d1c5361..00000000 --- a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log +++ /dev/null @@ -1,89 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new())) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new())) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(Some(DateTime::new())) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `new` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `DateTime<_>` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0599]: no function or associated item named `new` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `DateTime<_>` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log b/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log deleted file mode 100644 index 959d2414..00000000 --- a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from_iter([Default::default()]))) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(Some(DateTime::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ - | | - | function or associated item not found in `DateTime<_>` - | help: there is an associated function with a similar name: `from_utc` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0599]: no function or associated item named `from_iter` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ - | | - | function or associated item not found in `DateTime<_>` - | help: there is an associated function with a similar name: `from_utc` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log b/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log deleted file mode 100644 index 1b2cc1ea..00000000 --- a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log +++ /dev/null @@ -1,89 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new(Default::default()))) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new(Default::default()))) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(Some(DateTime::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `new` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `DateTime<_>` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0599]: no function or associated item named `new` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `DateTime<_>` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log b/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log deleted file mode 100644 index 8d2ab58b..00000000 --- a/mutants.out.old/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log +++ /dev/null @@ -1,164 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(None) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(None) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.47s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.24s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::multi ... ok -test community::queue ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__id.rs_line_43_col_9.log b/mutants.out.old/log/src__proto__single__id.rs_line_43_col_9.log deleted file mode 100644 index 3df11b6f..00000000 --- a/mutants.out.old/log/src__proto__single__id.rs_line_43_col_9.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/proto/single/id.rs:43:9: replace JobId::random -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/id.rs -+++ replace JobId::random -> Self with Default::default() -@@ -35,17 +35,17 @@ - /// If you do not have any domain, product or organisation specific requirements, you may prefer - /// to have a random job identifier generated for you with [`random`](JobId::random). - #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] - pub struct JobId(String); - - impl JobId { - /// Internally, generates a 16-char long random ASCII string. - pub fn random() -> Self { -- Self(utils::gen_random_jid()) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - string_wrapper_impls!(JobId); - - // ----------------------------------------------------- - - /// Worker identifier. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.42s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... FAILED -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("") - right: JobId("") - ----- proto::single::test::test_job_can_be_created_with_builder stdout ---- -thread 'proto::single::test::test_job_can_be_created_with_builder' panicked at src/proto/single/mod.rs:292:9: -assertion failed: job.jid != "".into() - - -failures: - proto::single::test::test_all_job_creation_variants_align - proto::single::test::test_job_can_be_created_with_builder - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.26s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__id.rs_line_64_col_9.log b/mutants.out.old/log/src__proto__single__id.rs_line_64_col_9.log deleted file mode 100644 index 00c4cdcb..00000000 --- a/mutants.out.old/log/src__proto__single__id.rs_line_64_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/id.rs:64:9: replace WorkerId::random -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/id.rs -+++ replace WorkerId::random -> Self with Default::default() -@@ -56,17 +56,17 @@ - /// If you do not have any domain, product or organisation specific requirements, you may prefer - /// to have a random job identifier generated for you with [`random`](WorkerId::random). - #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] - pub struct WorkerId(String); - - impl WorkerId { - /// Internally, generates a 32-char long random ASCII string. - pub fn random() -> Self { -- Self(utils::gen_random_wid()) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - string_wrapper_impls!(WorkerId); - - // ----------------------------------------------------- - - /// Batch identifier. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.08s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.04s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_success ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::fail ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_client ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__id.rs_line_84_col_9.log b/mutants.out.old/log/src__proto__single__id.rs_line_84_col_9.log deleted file mode 100644 index c0c64418..00000000 --- a/mutants.out.old/log/src__proto__single__id.rs_line_84_col_9.log +++ /dev/null @@ -1,162 +0,0 @@ - -*** src/proto/single/id.rs:84:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/id.rs -+++ replace ::from -> Self with Default::default() -@@ -76,11 +76,11 @@ - #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] - pub struct BatchId(String); - - string_wrapper_impls!(BatchId); - - use serde_json::Value; - impl From for Value { - fn from(value: BatchId) -> Self { -- value.0.into() -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.17s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.96s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test community::queue ... ok -test community::roundtrip ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_171_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_171_col_9.log deleted file mode 100644 index 46b1f18c..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_171_col_9.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/single/mod.rs:171:9: replace JobBuilder::args -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace JobBuilder::args -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -163,18 +163,17 @@ - } - - /// Setter for the arguments provided for this job. - pub fn args(&mut self, args: I) -> &mut Self - where - I: IntoIterator, - V: Into, - { -- self.args = Some(args.into_iter().map(|s| s.into()).collect()); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Sets arbitrary key-value pairs to this job's custom data hash. - pub fn add_to_custom_data( - &mut self, - k: impl Into, - v: impl Into, - ) -> &mut Self { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:171:28 - | -171 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:171:28 - | -171 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_181_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_181_col_9.log deleted file mode 100644 index d52906c4..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_181_col_9.log +++ /dev/null @@ -1,59 +0,0 @@ - -*** src/proto/single/mod.rs:181:9: replace JobBuilder::add_to_custom_data -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace JobBuilder::add_to_custom_data -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -173,19 +173,17 @@ - } - - /// Sets arbitrary key-value pairs to this job's custom data hash. - pub fn add_to_custom_data( - &mut self, - k: impl Into, - v: impl Into, - ) -> &mut Self { -- let custom = self.custom.get_or_insert_with(HashMap::new); -- custom.insert(k.into(), v.into()); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Builds a new [`Job`] from the parameters of this builder. - /// - /// For Enterprise edition of Faktory builds a new _trackable_ `Job`. - /// In Enterprise Faktory, a progress update can be sent and received only for the jobs - /// that have been explicitly marked as trackable via `"track":1` in the job's custom hash. - /// In case you have a reason to opt out of tracking, either unset (remove) the "track" on - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:181:28 - | -181 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:181:28 - | -181 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_194_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_194_col_9.log deleted file mode 100644 index 7034140d..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_194_col_9.log +++ /dev/null @@ -1,63 +0,0 @@ - -*** src/proto/single/mod.rs:194:9: replace JobBuilder::build -> Job with Default::default() - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace JobBuilder::build -> Job with Default::default() -@@ -186,21 +186,17 @@ - /// Builds a new [`Job`] from the parameters of this builder. - /// - /// For Enterprise edition of Faktory builds a new _trackable_ `Job`. - /// In Enterprise Faktory, a progress update can be sent and received only for the jobs - /// that have been explicitly marked as trackable via `"track":1` in the job's custom hash. - /// In case you have a reason to opt out of tracking, either unset (remove) the "track" on - /// the resulted job's [`custom`](Job::custom) hash or set it to 0. - pub fn build(&mut self) -> Job { -- if cfg!(feature = "ent") { -- self.add_to_custom_data("track", 1); -- } -- self.try_build() -- .expect("All required fields have been set.") -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[derive(Serialize, Deserialize, Debug, Clone)] - pub struct Failure { - retry_count: usize, - failed_at: String, - #[serde(skip_serializing_if = "Option::is_none")] - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Job: Default` is not satisfied - --> src/proto/single/mod.rs:194:9 - | -194 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Job` - | -help: consider annotating `Job` with `#[derive(Default)]` - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -For more information about this error, try `rustc --explain E0277`. -error[E0277]: the trait bound `single::Job: Default` is not satisfied - --> src/proto/single/mod.rs:194:9 - | -194 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Job` - | -help: consider annotating `single::Job` with `#[derive(Default)]` - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_231_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_231_col_9.log deleted file mode 100644 index 44e1a1ee..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_231_col_9.log +++ /dev/null @@ -1,57 +0,0 @@ - -*** src/proto/single/mod.rs:231:9: replace Job::builder -> JobBuilder with Default::default() - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::builder -> JobBuilder with Default::default() -@@ -223,17 +223,17 @@ - { - JobBuilder::new(kind).args(args).build() - } - - /// Creates an ergonomic constructor for a new [`Job`]. - /// - /// Also equivalent to [`JobBuilder::new`]. - pub fn builder>(kind: S) -> JobBuilder { -- JobBuilder::new(kind) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Place this job on the given `queue`. - /// - /// If this method is not called (or `self.queue` set otherwise), the queue will be set to - /// "default". - pub fn on_queue>(mut self, queue: S) -> Self { - self.queue = queue.into(); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:231:9 - | -231 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:231:9 - | -231 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_239_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_239_col_9.log deleted file mode 100644 index 7775d687..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_239_col_9.log +++ /dev/null @@ -1,60 +0,0 @@ - -*** src/proto/single/mod.rs:239:9: replace Job::on_queue -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::on_queue -> Self with Default::default() -@@ -231,18 +231,17 @@ - JobBuilder::new(kind) - } - - /// Place this job on the given `queue`. - /// - /// If this method is not called (or `self.queue` set otherwise), the queue will be set to - /// "default". - pub fn on_queue>(mut self, queue: S) -> Self { -- self.queue = queue.into(); -- self -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// This job's id. - pub fn id(&self) -> &JobId { - &self.jid - } - - /// This job's type. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Job: Default` is not satisfied - --> src/proto/single/mod.rs:239:9 - | -239 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Job` - | -help: consider annotating `Job` with `#[derive(Default)]` - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::Job: Default` is not satisfied - --> src/proto/single/mod.rs:239:9 - | -239 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Job` - | -help: consider annotating `single::Job` with `#[derive(Default)]` - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_245_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_245_col_9.log deleted file mode 100644 index 8f2d9d60..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_245_col_9.log +++ /dev/null @@ -1,44 +0,0 @@ - -*** src/proto/single/mod.rs:245:9: replace Job::id -> &JobId with &Default::default() - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::id -> &JobId with &Default::default() -@@ -237,17 +237,17 @@ - /// "default". - pub fn on_queue>(mut self, queue: S) -> Self { - self.queue = queue.into(); - self - } - - /// This job's id. - pub fn id(&self) -> &JobId { -- &self.jid -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// This job's type. - pub fn kind(&self) -> &str { - &self.kind - } - - /// The arguments provided for this job. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0515]: cannot return reference to temporary value - --> src/proto/single/mod.rs:245:9 - | -245 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^------------------ - | || - | |temporary value created here - | returns a reference to data owned by the current function - -For more information about this error, try `rustc --explain E0515`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_250_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_250_col_9.log deleted file mode 100644 index ebefe729..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_250_col_9.log +++ /dev/null @@ -1,139 +0,0 @@ - -*** src/proto/single/mod.rs:250:9: replace Job::kind -> &str with "" - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::kind -> &str with "" -@@ -242,17 +242,17 @@ - - /// This job's id. - pub fn id(&self) -> &JobId { - &self.jid - } - - /// This job's type. - pub fn kind(&self) -> &str { -- &self.kind -+ "" /* ~ changed by cargo-mutants ~ */ - } - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { - &self.args - } - - /// Data about this job's most recent failure. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.44s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test terminate ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_250_col_9_001.log b/mutants.out.old/log/src__proto__single__mod.rs_line_250_col_9_001.log deleted file mode 100644 index d63250da..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_250_col_9_001.log +++ /dev/null @@ -1,139 +0,0 @@ - -*** src/proto/single/mod.rs:250:9: replace Job::kind -> &str with "xyzzy" - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::kind -> &str with "xyzzy" -@@ -242,17 +242,17 @@ - - /// This job's id. - pub fn id(&self) -> &JobId { - &self.jid - } - - /// This job's type. - pub fn kind(&self) -> &str { -- &self.kind -+ "xyzzy" /* ~ changed by cargo-mutants ~ */ - } - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { - &self.args - } - - /// Data about this job's most recent failure. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.25s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 120, 121, 122, 122, 121, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 120, 121, 122, 122, 121, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_255_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_255_col_9.log deleted file mode 100644 index f8ba5fa4..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_255_col_9.log +++ /dev/null @@ -1,119 +0,0 @@ - -*** src/proto/single/mod.rs:255:9: replace Job::args -> &[serde_json::Value] with Vec::leak(vec![Default::default()]) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::args -> &[serde_json::Value] with Vec::leak(vec![Default::default()]) -@@ -247,17 +247,17 @@ - - /// This job's type. - pub fn kind(&self) -> &str { - &self.kind - } - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { -- &self.args -+ Vec::leak(vec![Default::default()]) /* ~ changed by cargo-mutants ~ */ - } - - /// Data about this job's most recent failure. - pub fn failure(&self) -> &Option { - &self.failure - } - } - pub async fn write_command( - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.21s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.03s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:101:9: -assertion `left == right` failed - left: [Null] - right: ["z"] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:62:9: -assertion `left == right` failed - left: [Null] - right: ["z"] - - -failures: - dequeue - dequeue_first_empty - -test result: FAILED. 6 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_255_col_9_001.log b/mutants.out.old/log/src__proto__single__mod.rs_line_255_col_9_001.log deleted file mode 100644 index 66305277..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_255_col_9_001.log +++ /dev/null @@ -1,119 +0,0 @@ - -*** src/proto/single/mod.rs:255:9: replace Job::args -> &[serde_json::Value] with Vec::leak(Vec::new()) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::args -> &[serde_json::Value] with Vec::leak(Vec::new()) -@@ -247,17 +247,17 @@ - - /// This job's type. - pub fn kind(&self) -> &str { - &self.kind - } - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { -- &self.args -+ Vec::leak(Vec::new()) /* ~ changed by cargo-mutants ~ */ - } - - /// Data about this job's most recent failure. - pub fn failure(&self) -> &Option { - &self.failure - } - } - pub async fn write_command( - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.22s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:62:9: -assertion `left == right` failed - left: [] - right: ["z"] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:101:9: -assertion `left == right` failed - left: [] - right: ["z"] - - -failures: - dequeue - dequeue_first_empty - -test result: FAILED. 6 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_260_col_9.log b/mutants.out.old/log/src__proto__single__mod.rs_line_260_col_9.log deleted file mode 100644 index f1c54cc2..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_260_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/mod.rs:260:9: replace Job::failure -> &Option with &Some(Default::default()) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::failure -> &Option with &Some(Default::default()) -@@ -252,17 +252,17 @@ - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { - &self.args - } - - /// Data about this job's most recent failure. - pub fn failure(&self) -> &Option { -- &self.failure -+ &Some(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - pub async fn write_command( - w: &mut W, - command: &C, - ) -> Result<(), Error> { - command.issue::(w).await?; - Ok(w.flush().await?) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `single::Failure: Default` is not satisfied - --> src/proto/single/mod.rs:260:15 - | -260 | &Some(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Failure` - | -help: consider annotating `single::Failure` with `#[derive(Default)]` - | -203 + #[derive(Default)] -204 | pub struct Failure { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_260_col_9_001.log b/mutants.out.old/log/src__proto__single__mod.rs_line_260_col_9_001.log deleted file mode 100644 index 4a893cee..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_260_col_9_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/mod.rs:260:9: replace Job::failure -> &Option with &None - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::failure -> &Option with &None -@@ -252,17 +252,17 @@ - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { - &self.args - } - - /// Data about this job's most recent failure. - pub fn failure(&self) -> &Option { -- &self.failure -+ &None /* ~ changed by cargo-mutants ~ */ - } - } - pub async fn write_command( - w: &mut W, - command: &C, - ) -> Result<(), Error> { - command.issue::(w).await?; - Ok(w.flush().await?) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.45s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.42s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::multi ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_client ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_267_col_5.log b/mutants.out.old/log/src__proto__single__mod.rs_line_267_col_5.log deleted file mode 100644 index 42d312f2..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_267_col_5.log +++ /dev/null @@ -1,156 +0,0 @@ - -*** src/proto/single/mod.rs:267:5: replace write_command -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace write_command -> Result<(), Error> with Ok(()) -@@ -259,18 +259,17 @@ - pub fn failure(&self) -> &Option { - &self.failure - } - } - pub async fn write_command( - w: &mut W, - command: &C, - ) -> Result<(), Error> { -- command.issue::(w).await?; -- Ok(w.flush().await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - pub async fn write_command_and_await_ok< - S: AsyncBufRead + AsyncWriteExt + Unpin + Send, - C: FaktoryCommand, - >( - stream: &mut S, - command: &C, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.48s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... FAILED -test hello ... FAILED -test dequeue ... FAILED -test hello_pwd ... FAILED -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:17:5: -assertion failed: written.starts_with(b"HELLO {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- hello_pwd stdout ---- -thread 'hello_pwd' panicked at tests/consumer.rs:46:5: -assertion failed: written.starts_with(b"HELLO {") - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:24: -range end index 25 out of range for slice of length 0 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - hello - hello_pwd - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 0 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__mod.rs_line_278_col_5.log b/mutants.out.old/log/src__proto__single__mod.rs_line_278_col_5.log deleted file mode 100644 index d631529b..00000000 --- a/mutants.out.old/log/src__proto__single__mod.rs_line_278_col_5.log +++ /dev/null @@ -1,150 +0,0 @@ - -*** src/proto/single/mod.rs:278:5: replace write_command_and_await_ok -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace write_command_and_await_ok -> Result<(), Error> with Ok(()) -@@ -270,18 +270,17 @@ - - pub async fn write_command_and_await_ok< - S: AsyncBufRead + AsyncWriteExt + Unpin + Send, - C: FaktoryCommand, - >( - stream: &mut S, - command: &C, - ) -> Result<(), Error> { -- write_command(stream, command).await?; -- read_ok(stream).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - #[cfg(test)] - mod test { - use super::*; - - #[test] - fn test_job_can_be_created_with_builder() { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.52s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.32s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello ... FAILED -test hello_pwd ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test terminate ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:17:5: -assertion failed: written.starts_with(b"HELLO {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- hello_pwd stdout ---- -thread 'hello_pwd' panicked at tests/consumer.rs:46:5: -assertion failed: written.starts_with(b"HELLO {") - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:5: -assertion `left == right` failed - left: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 66, 69, 65, 84, 32] - right: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 70, 65, 73, 76, 32] - - -failures: - dequeue - dequeue_first_empty - hello - hello_pwd - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 0 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_110_col_5.log b/mutants.out.old/log/src__proto__single__resp.rs_line_110_col_5.log deleted file mode 100644 index 94d780f9..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_110_col_5.log +++ /dev/null @@ -1,146 +0,0 @@ - -*** src/proto/single/resp.rs:110:5: replace read_ok -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_ok -> Result<(), Error> with Ok(()) -@@ -102,24 +102,17 @@ - } - } - Err(bad("server hi", &rr).into()) - } - - // ---------------------------------------------- - - pub async fn read_ok(r: R) -> Result<(), Error> { -- let rr = read(r).await?; -- if let RawResponse::String(ref s) = rr { -- if s == "OK" { -- return Ok(()); -- } -- } -- -- Err(bad("server ok", &rr).into()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - // - // below is the implementation of the Redis RESP protocol - // - // ---------------------------------------------- - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.43s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test terminate ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:5: -assertion `left == right` failed - left: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 66, 69, 65, 84, 32] - right: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 70, 65, 73, 76, 32] - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_112_col_14.log b/mutants.out.old/log/src__proto__single__resp.rs_line_112_col_14.log deleted file mode 100644 index 0c226ec5..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_112_col_14.log +++ /dev/null @@ -1,225 +0,0 @@ - -*** src/proto/single/resp.rs:112:14: replace == with != in read_ok - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace == with != in read_ok -@@ -104,17 +104,17 @@ - Err(bad("server hi", &rr).into()) - } - - // ---------------------------------------------- - - pub async fn read_ok(r: R) -> Result<(), Error> { - let rr = read(r).await?; - if let RawResponse::String(ref s) = rr { -- if s == "OK" { -+ if s != /* ~ changed by cargo-mutants ~ */ "OK" { - return Ok(()); - } - } - - Err(bad("server ok", &rr).into()) - } - - // ---------------------------------------------- - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.09s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... FAILED -test hello ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... FAILED -thread 'well_behaved' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 2 -thread 'well_behaved' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x59a80b6707b6 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x59a80b6707b6 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x59a80b6707b6 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x59a80b6707b6 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x59a80b699e90 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x59a80b699e90 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x59a80b66de0f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x59a80b670594 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x59a80b670594 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x59a80b672307 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x59a80b671fed - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x59a80b50a0a7 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x59a80b50a0a7 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x59a80b672926 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x59a80b672926 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x59a80b672672 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x59a80b670cb6 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x59a80b6723c4 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x59a80b40eca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x59a80b40f2a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x59a80b4387b4 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x59a80b4387b4 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/mock/mod.rs:136:17 - 22: 0x59a80b433f73 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x59a80b4ab62f - consumer::well_behaved::{{closure}}::h74d858d81dce02a5 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:214:1 - 24: 0x59a80b410793 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x59a80b487164 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x59a80b486660 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x59a80b486660 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x59a80b486660 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x59a80b4b7534 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x59a80b426d88 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x59a80b469914 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x59a80b426d58 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x59a80b490277 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x59a80b496d08 - consumer::well_behaved::h88b846a49b219eb1 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:210:5 - 35: 0x59a80b4ab447 - consumer::well_behaved::{{closure}}::hebef571c952f5951 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:152:24 - 36: 0x59a80b42b6c6 - core::ops::function::FnOnce::call_once::h17044c0a3e747593 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x59a80b50fc6f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x59a80b50fc6f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x59a80b50eac1 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x59a80b50eac1 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x59a80b50eac1 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x59a80b50eac1 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x59a80b50eac1 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x59a80b50eac1 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x59a80b50eac1 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x59a80b4d5ea6 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x59a80b4d5ea6 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x59a80b4daee7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x59a80b4daee7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x59a80b4daee7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x59a80b4daee7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x59a80b4daee7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x59a80b4daee7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x59a80b4daee7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x59a80b676e45 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x59a80b676e45 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x59a80b676e45 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x7c3118294ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x7c3118326850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'well_behaved' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_138_col_5.log b/mutants.out.old/log/src__proto__single__resp.rs_line_138_col_5.log deleted file mode 100644 index be483ae7..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_138_col_5.log +++ /dev/null @@ -1,135 +0,0 @@ - -*** src/proto/single/resp.rs:138:5: replace read -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read -> Result with Ok(Default::default()) -@@ -130,111 +130,17 @@ - Number(isize), - Null, - } - - async fn read(mut r: R) -> Result - where - R: AsyncReadExt + AsyncBufReadExt + Unpin, - { -- let mut cmdbuf = [0u8; 1]; -- r.read_exact(&mut cmdbuf).await?; -- match cmdbuf[0] { -- b'+' => { -- // Simple String -- // https://redis.io/topics/protocol#resp-simple-strings -- let mut s = String::new(); -- r.read_line(&mut s).await?; -- -- // remove newlines -- let l = s.len() - 2; -- s.truncate(l); -- -- Ok(RawResponse::String(s)) -- } -- b'-' => { -- // Error -- // https://redis.io/topics/protocol#resp-errors -- let mut s = String::new(); -- r.read_line(&mut s).await?; -- -- // remove newlines -- let l = s.len() - 2; -- s.truncate(l); -- -- Err(error::Protocol::new(s).into()) -- } -- b':' => { -- // Integer -- // https://redis.io/topics/protocol#resp-integers -- let mut s = String::with_capacity(32); -- r.read_line(&mut s).await?; -- -- // remove newlines -- let l = s.len() - 2; -- s.truncate(l); -- -- match (*s).parse::() { -- Ok(i) => Ok(RawResponse::Number(i)), -- Err(_) => Err(error::Protocol::BadResponse { -- typed_as: "integer", -- error: "invalid integer value", -- bytes: s.into_bytes(), -- } -- .into()), -- } -- } -- b'$' => { -- // Bulk String -- // https://redis.io/topics/protocol#resp-bulk-strings -- let mut bytes = Vec::with_capacity(32); -- r.read_until(b'\n', &mut bytes).await?; -- let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { -- error::Protocol::BadResponse { -- typed_as: "bulk string", -- error: "server bulk response contains non-utf8 size prefix", -- bytes: bytes[0..bytes.len() - 2].to_vec(), -- } -- })?; -- -- let size = s -- .parse::() -- .map_err(|_| error::Protocol::BadResponse { -- typed_as: "bulk string", -- error: "server bulk response size prefix is not an integer", -- bytes: s.as_bytes().to_vec(), -- })?; -- -- if size == -1 { -- Ok(RawResponse::Null) -- } else { -- let size = size as usize; -- let mut bytes = vec![0; size]; -- r.read_exact(&mut bytes[..]).await?; -- r.read_exact(&mut [0u8; 2]).await?; -- Ok(RawResponse::Blob(bytes)) -- } -- } -- b'*' => { -- // Arrays -- // https://redis.io/topics/protocol#resp-arrays -- // -- // not used in faktory. -- // *and* you can't really skip them unless you parse them. -- // *and* not parsing them would leave the stream in an inconsistent state. -- // so we'll just give up -- unimplemented!(); -- } -- c => Err(error::Protocol::BadResponse { -- typed_as: "unknown", -- error: "invalid response type prefix", -- bytes: vec![c], -- } -- .into()), -- } -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - // these are mostly for convenience for testing - - impl<'a> From<&'a str> for RawResponse { - fn from(s: &'a str) -> Self { - RawResponse::String(s.to_string()) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `RawResponse: Default` is not satisfied - --> src/proto/single/resp.rs:138:8 - | -138 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `RawResponse` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_148_col_29.log b/mutants.out.old/log/src__proto__single__resp.rs_line_148_col_29.log deleted file mode 100644 index c57c8f3e..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_148_col_29.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/proto/single/resp.rs:148:29: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -140,17 +140,17 @@ - match cmdbuf[0] { - b'+' => { - // Simple String - // https://redis.io/topics/protocol#resp-simple-strings - let mut s = String::new(); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() + /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - Ok(RawResponse::String(s)) - } - b'-' => { - // Error - // https://redis.io/topics/protocol#resp-errors - let mut s = String::new(); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.51s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... FAILED -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... FAILED -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_json_ok_string stdout ---- -thread 'proto::single::resp::test::it_decodes_json_ok_string' panicked at src/proto/single/resp.rs:349:39: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- proto::single::resp::test::it_parses_simple_strings stdout ---- -thread 'proto::single::resp::test::it_parses_simple_strings' panicked at src/proto/single/resp.rs:271:9: -assertion `left == right` failed - left: String("OK\r\n") - right: String("OK") - - -failures: - proto::single::resp::test::it_decodes_json_ok_string - proto::single::resp::test::it_parses_simple_strings - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_148_col_29_001.log b/mutants.out.old/log/src__proto__single__resp.rs_line_148_col_29_001.log deleted file mode 100644 index 7f1c8598..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_148_col_29_001.log +++ /dev/null @@ -1,89 +0,0 @@ - -*** src/proto/single/resp.rs:148:29: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -140,17 +140,17 @@ - match cmdbuf[0] { - b'+' => { - // Simple String - // https://redis.io/topics/protocol#resp-simple-strings - let mut s = String::new(); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() / /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - Ok(RawResponse::String(s)) - } - b'-' => { - // Error - // https://redis.io/topics/protocol#resp-errors - let mut s = String::new(); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.39s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... FAILED -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_string_json stdout ---- -thread 'proto::single::resp::test::it_decodes_string_json' panicked at src/proto/single/resp.rs:375:39: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 6)) - - -failures: - proto::single::resp::test::it_decodes_string_json - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.03s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_160_col_29.log b/mutants.out.old/log/src__proto__single__resp.rs_line_160_col_29.log deleted file mode 100644 index 016a4313..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_160_col_29.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/single/resp.rs:160:29: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -152,17 +152,17 @@ - } - b'-' => { - // Error - // https://redis.io/topics/protocol#resp-errors - let mut s = String::new(); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() / /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - Err(error::Protocol::new(s).into()) - } - b':' => { - // Integer - // https://redis.io/topics/protocol#resp-integers - let mut s = String::with_capacity(32); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.43s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... FAILED -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_parses_errors stdout ---- -thread 'proto::single::resp::test::it_parses_errors' panicked at src/proto/single/resp.rs:298:13: -assertion `left == right` failed - left: "" - right: "foo" - - -failures: - proto::single::resp::test::it_parses_errors - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.13s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_160_col_29_001.log b/mutants.out.old/log/src__proto__single__resp.rs_line_160_col_29_001.log deleted file mode 100644 index e8f05512..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_160_col_29_001.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/single/resp.rs:160:29: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -152,17 +152,17 @@ - } - b'-' => { - // Error - // https://redis.io/topics/protocol#resp-errors - let mut s = String::new(); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() + /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - Err(error::Protocol::new(s).into()) - } - b':' => { - // Integer - // https://redis.io/topics/protocol#resp-integers - let mut s = String::with_capacity(32); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.55s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_errors ... FAILED -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_parses_errors stdout ---- -thread 'proto::single::resp::test::it_parses_errors' panicked at src/proto/single/resp.rs:298:13: -assertion `left == right` failed - left: "foo\r\n" - right: "foo" - - -failures: - proto::single::resp::test::it_parses_errors - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.99s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_172_col_29.log b/mutants.out.old/log/src__proto__single__resp.rs_line_172_col_29.log deleted file mode 100644 index a9e2b186..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_172_col_29.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/single/resp.rs:172:29: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -164,17 +164,17 @@ - } - b':' => { - // Integer - // https://redis.io/topics/protocol#resp-integers - let mut s = String::with_capacity(32); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() / /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - match (*s).parse::() { - Ok(i) => Ok(RawResponse::Number(i)), - Err(_) => Err(error::Protocol::BadResponse { - typed_as: "integer", - error: "invalid integer value", - bytes: s.into_bytes(), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.41s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_numbers ... FAILED -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_parses_numbers stdout ---- -thread 'proto::single::resp::test::it_parses_numbers' panicked at src/proto/single/resp.rs:277:9: -assertion `left == right` failed - left: Number(102) - right: Number(1024) - - -failures: - proto::single::resp::test::it_parses_numbers - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.06s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_172_col_29_001.log b/mutants.out.old/log/src__proto__single__resp.rs_line_172_col_29_001.log deleted file mode 100644 index 3fedec21..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_172_col_29_001.log +++ /dev/null @@ -1,94 +0,0 @@ - -*** src/proto/single/resp.rs:172:29: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -164,17 +164,17 @@ - } - b':' => { - // Integer - // https://redis.io/topics/protocol#resp-integers - let mut s = String::with_capacity(32); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() + /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - match (*s).parse::() { - Ok(i) => Ok(RawResponse::Number(i)), - Err(_) => Err(error::Protocol::BadResponse { - typed_as: "integer", - error: "invalid integer value", - bytes: s.into_bytes(), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.51s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.08s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... FAILED -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... FAILED -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::json_error_on_number stdout ---- -thread 'proto::single::resp::test::json_error_on_number' panicked at src/proto/single/resp.rs:417:13: -internal error: entered unreachable code - ----- proto::single::resp::test::it_parses_numbers stdout ---- -thread 'proto::single::resp::test::it_parses_numbers' panicked at src/proto/single/resp.rs:277:34: -called `Result::unwrap()` on an `Err` value: Protocol(BadResponse { typed_as: "integer", error: "invalid integer value", bytes: [49, 48, 50, 52, 13, 10] }) - - -failures: - proto::single::resp::test::it_parses_numbers - proto::single::resp::test::json_error_on_number - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_190_col_63.log b/mutants.out.old/log/src__proto__single__resp.rs_line_190_col_63.log deleted file mode 100644 index 18a942cf..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_190_col_63.log +++ /dev/null @@ -1,137 +0,0 @@ - -*** src/proto/single/resp.rs:190:63: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -182,17 +182,17 @@ - .into()), - } - } - b'$' => { - // Bulk String - // https://redis.io/topics/protocol#resp-bulk-strings - let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes).await?; -- let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { -+ let s = std::str::from_utf8(&bytes[0..bytes.len() / /* ~ changed by cargo-mutants ~ */ 2]).map_err(|_| { - error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response contains non-utf8 size prefix", - bytes: bytes[0..bytes.len() - 2].to_vec(), - } - })?; - - let size = s - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.50s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.10s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -Serialization(Error("EOF while parsing a string", line: 1, column: 18)) -thread 'dequeue_first_empty' panicked at tests/consumer.rs:136:13: -internal error: entered unreachable code - ----- dequeue stdout ---- -Serialization(Error("EOF while parsing a string", line: 1, column: 18)) -thread 'dequeue' panicked at tests/consumer.rs:85:9: -internal error: entered unreachable code -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 18)) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 18)) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 18)) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 18)) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_190_col_63_001.log b/mutants.out.old/log/src__proto__single__resp.rs_line_190_col_63_001.log deleted file mode 100644 index c1c012d6..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_190_col_63_001.log +++ /dev/null @@ -1,130 +0,0 @@ - -*** src/proto/single/resp.rs:190:63: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -182,17 +182,17 @@ - .into()), - } - } - b'$' => { - // Bulk String - // https://redis.io/topics/protocol#resp-bulk-strings - let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes).await?; -- let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { -+ let s = std::str::from_utf8(&bytes[0..bytes.len() + /* ~ changed by cargo-mutants ~ */ 2]).map_err(|_| { - error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response contains non-utf8 size prefix", - bytes: bytes[0..bytes.len() - 2].to_vec(), - } - })?; - - let size = s - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 2.63s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... FAILED -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... FAILED -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... FAILED -test proto::single::resp::test::it_decodes_blob_json ... FAILED -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... FAILED -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... FAILED -test proto::single::resp::test::it_parses_nills ... FAILED -test proto::single::resp::test::it_parses_empty_bulk ... FAILED -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... FAILED -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_json_empty stdout ---- -thread 'proto::single::resp::test::it_decodes_json_empty' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - ----- proto::single::resp::test::it_decodes_json_ok_blob stdout ---- -thread 'proto::single::resp::test::it_decodes_json_ok_blob' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - ----- proto::single::resp::test::it_errors_on_bad_json_blob stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_blob' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- proto::single::resp::test::it_decodes_blob_json stdout ---- -thread 'proto::single::resp::test::it_decodes_blob_json' panicked at src/proto/single/resp.rs:190:47: -range end index 6 out of range for slice of length 4 - ----- proto::single::resp::test::it_decodes_json_nill stdout ---- -thread 'proto::single::resp::test::it_decodes_json_nill' panicked at src/proto/single/resp.rs:190:47: -range end index 6 out of range for slice of length 4 - ----- proto::single::resp::test::it_errors_on_bad_sizes stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_sizes' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - ----- proto::single::resp::test::it_parses_nills stdout ---- -thread 'proto::single::resp::test::it_parses_nills' panicked at src/proto/single/resp.rs:190:47: -range end index 6 out of range for slice of length 4 - ----- proto::single::resp::test::it_parses_empty_bulk stdout ---- -thread 'proto::single::resp::test::it_parses_empty_bulk' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - ----- proto::single::resp::test::it_parses_non_empty_bulk stdout ---- -thread 'proto::single::resp::test::it_parses_non_empty_bulk' panicked at src/proto/single/resp.rs:190:47: -range end index 6 out of range for slice of length 4 - - -failures: - proto::single::resp::test::it_decodes_blob_json - proto::single::resp::test::it_decodes_json_empty - proto::single::resp::test::it_decodes_json_nill - proto::single::resp::test::it_decodes_json_ok_blob - proto::single::resp::test::it_errors_on_bad_json_blob - proto::single::resp::test::it_errors_on_bad_sizes - proto::single::resp::test::it_parses_empty_bulk - proto::single::resp::test::it_parses_nills - proto::single::resp::test::it_parses_non_empty_bulk - -test result: FAILED. 26 passed; 9 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_194_col_49.log b/mutants.out.old/log/src__proto__single__resp.rs_line_194_col_49.log deleted file mode 100644 index 9c0eeefe..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_194_col_49.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/resp.rs:194:49: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -186,17 +186,17 @@ - // Bulk String - // https://redis.io/topics/protocol#resp-bulk-strings - let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes).await?; - let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { - error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response contains non-utf8 size prefix", -- bytes: bytes[0..bytes.len() - 2].to_vec(), -+ bytes: bytes[0..bytes.len() + /* ~ changed by cargo-mutants ~ */ 2].to_vec(), - } - })?; - - let size = s - .parse::() - .map_err(|_| error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response size prefix is not an integer", - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.39s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::enqueue_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::roundtrip ... ok -test community::fail ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::multi ... ok -test community::hello_worker ... ok -test community::queue ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_194_col_49_001.log b/mutants.out.old/log/src__proto__single__resp.rs_line_194_col_49_001.log deleted file mode 100644 index 0a034fa0..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_194_col_49_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/resp.rs:194:49: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -186,17 +186,17 @@ - // Bulk String - // https://redis.io/topics/protocol#resp-bulk-strings - let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes).await?; - let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { - error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response contains non-utf8 size prefix", -- bytes: bytes[0..bytes.len() - 2].to_vec(), -+ bytes: bytes[0..bytes.len() / /* ~ changed by cargo-mutants ~ */ 2].to_vec(), - } - })?; - - let size = s - .parse::() - .map_err(|_| error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response size prefix is not an integer", - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.79s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.08s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.32s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_worker ... ok -test community::fail ... ok -test community::enqueue_job ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_client ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::queue ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_created_with_builder ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.71s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_206_col_21.log b/mutants.out.old/log/src__proto__single__resp.rs_line_206_col_21.log deleted file mode 100644 index e54abee7..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_206_col_21.log +++ /dev/null @@ -1,121 +0,0 @@ - -*** src/proto/single/resp.rs:206:21: replace == with != in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace == with != in read -@@ -198,17 +198,17 @@ - let size = s - .parse::() - .map_err(|_| error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response size prefix is not an integer", - bytes: s.as_bytes().to_vec(), - })?; - -- if size == -1 { -+ if size != /* ~ changed by cargo-mutants ~ */ -1 { - Ok(RawResponse::Null) - } else { - let size = size as usize; - let mut bytes = vec![0; size]; - r.read_exact(&mut bytes[..]).await?; - r.read_exact(&mut [0u8; 2]).await?; - Ok(RawResponse::Blob(bytes)) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.82s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.08s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... FAILED -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... FAILED -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... FAILED -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... FAILED -test proto::single::resp::test::it_parses_nills ... FAILED -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... FAILED -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_errors_on_bad_json_blob stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_blob' panicked at src/proto/single/resp.rs:389:63: -called `Result::unwrap_err()` on an `Ok` value: None - ----- proto::single::resp::test::it_decodes_json_nill stdout ---- -thread 'proto::single::resp::test::it_decodes_json_nill' panicked at library/alloc/src/raw_vec.rs:570:5: -capacity overflow - ----- proto::single::resp::test::it_decodes_blob_json stdout ---- -thread 'proto::single::resp::test::it_decodes_blob_json' panicked at src/proto/single/resp.rs:383:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- proto::single::resp::test::it_parses_empty_bulk stdout ---- -thread 'proto::single::resp::test::it_parses_empty_bulk' panicked at src/proto/single/resp.rs:334:9: -assertion `left == right` failed - left: Null - right: Blob([]) - ----- proto::single::resp::test::it_parses_nills stdout ---- -thread 'proto::single::resp::test::it_parses_nills' panicked at library/alloc/src/raw_vec.rs:570:5: -capacity overflow - ----- proto::single::resp::test::it_parses_non_empty_bulk stdout ---- -thread 'proto::single::resp::test::it_parses_non_empty_bulk' panicked at src/proto/single/resp.rs:340:9: -assertion `left == right` failed - left: Null - right: Blob([72, 69, 76, 76, 79, 32, 87, 79, 82, 76, 68]) - - -failures: - proto::single::resp::test::it_decodes_blob_json - proto::single::resp::test::it_decodes_json_nill - proto::single::resp::test::it_errors_on_bad_json_blob - proto::single::resp::test::it_parses_empty_bulk - proto::single::resp::test::it_parses_nills - proto::single::resp::test::it_parses_non_empty_bulk - -test result: FAILED. 29 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.36s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_239_col_9.log b/mutants.out.old/log/src__proto__single__resp.rs_line_239_col_9.log deleted file mode 100644 index e4cde568..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_239_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/single/resp.rs:239:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace ::from -> Self with Default::default() -@@ -231,17 +231,17 @@ - .into()), - } - } - - // these are mostly for convenience for testing - - impl<'a> From<&'a str> for RawResponse { - fn from(s: &'a str) -> Self { -- RawResponse::String(s.to_string()) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl From for RawResponse { - fn from(i: isize) -> Self { - RawResponse::Number(i) - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `RawResponse: Default` is not satisfied - --> src/proto/single/resp.rs:239:9 - | -239 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `RawResponse` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_245_col_9.log b/mutants.out.old/log/src__proto__single__resp.rs_line_245_col_9.log deleted file mode 100644 index fa4f5908..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_245_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/single/resp.rs:245:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace ::from -> Self with Default::default() -@@ -237,17 +237,17 @@ - impl<'a> From<&'a str> for RawResponse { - fn from(s: &'a str) -> Self { - RawResponse::String(s.to_string()) - } - } - - impl From for RawResponse { - fn from(i: isize) -> Self { -- RawResponse::Number(i) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl From> for RawResponse { - fn from(b: Vec) -> Self { - RawResponse::Blob(b) - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `RawResponse: Default` is not satisfied - --> src/proto/single/resp.rs:245:9 - | -245 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `RawResponse` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_251_col_9.log b/mutants.out.old/log/src__proto__single__resp.rs_line_251_col_9.log deleted file mode 100644 index d2ecab84..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_251_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/single/resp.rs:251:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace ::from -> Self with Default::default() -@@ -243,17 +243,17 @@ - impl From for RawResponse { - fn from(i: isize) -> Self { - RawResponse::Number(i) - } - } - - impl From> for RawResponse { - fn from(b: Vec) -> Self { -- RawResponse::Blob(b) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[cfg(test)] - mod test { - use super::{read, RawResponse}; - - use crate::error::{self, Error}; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `RawResponse: Default` is not satisfied - --> src/proto/single/resp.rs:251:9 - | -251 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `RawResponse` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_37_col_5.log b/mutants.out.old/log/src__proto__single__resp.rs_line_37_col_5.log deleted file mode 100644 index 05d786f8..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_37_col_5.log +++ /dev/null @@ -1,71 +0,0 @@ - -*** src/proto/single/resp.rs:37:5: replace read_json -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_json -> Result, Error> with Ok(Some(Default::default())) -@@ -29,42 +29,17 @@ - } - } - - // ---------------------------------------------- - - pub async fn read_json( - r: R, - ) -> Result, Error> { -- let rr = read(r).await?; -- match rr { -- RawResponse::String(ref s) if s == "OK" => { -- return Ok(None); -- } -- RawResponse::String(ref s) => { -- return serde_json::from_str(s) -- .map(Some) -- .map_err(Error::Serialization); -- } -- RawResponse::Blob(ref b) if b == b"OK" => { -- return Ok(None); -- } -- RawResponse::Blob(ref b) => { -- if b.is_empty() { -- return Ok(None); -- } -- return serde_json::from_slice(b) -- .map(Some) -- .map_err(Error::Serialization); -- } -- RawResponse::Null => return Ok(None), -- _ => {} -- }; -- -- Err(bad("json", &rr).into()) -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - #[cfg(feature = "ent")] - pub async fn read_bid(r: R) -> Result { - match read(r).await? { - RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `T: Default` is not satisfied - --> src/proto/single/resp.rs:37:13 - | -37 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `T` - | -help: consider further restricting this bound - | -34 | pub async fn read_json( - | +++++++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_37_col_5_001.log b/mutants.out.old/log/src__proto__single__resp.rs_line_37_col_5_001.log deleted file mode 100644 index 9fb0cc52..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_37_col_5_001.log +++ /dev/null @@ -1,144 +0,0 @@ - -*** src/proto/single/resp.rs:37:5: replace read_json -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_json -> Result, Error> with Ok(None) -@@ -29,42 +29,17 @@ - } - } - - // ---------------------------------------------- - - pub async fn read_json( - r: R, - ) -> Result, Error> { -- let rr = read(r).await?; -- match rr { -- RawResponse::String(ref s) if s == "OK" => { -- return Ok(None); -- } -- RawResponse::String(ref s) => { -- return serde_json::from_str(s) -- .map(Some) -- .map_err(Error::Serialization); -- } -- RawResponse::Blob(ref b) if b == b"OK" => { -- return Ok(None); -- } -- RawResponse::Blob(ref b) => { -- if b.is_empty() { -- return Ok(None); -- } -- return serde_json::from_slice(b) -- .map(Some) -- .map_err(Error::Serialization); -- } -- RawResponse::Null => return Ok(None), -- _ => {} -- }; -- -- Err(bad("json", &rr).into()) -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - #[cfg(feature = "ent")] - pub async fn read_bid(r: R) -> Result { - match read(r).await? { - RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.75s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... FAILED -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... FAILED -test proto::single::resp::test::it_errors_on_bad_json_blob ... FAILED -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... FAILED -test proto::single::resp::test::it_errors_on_bad_json_string ... FAILED -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... FAILED -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_errors_on_unknown_resp_type stdout ---- -thread 'proto::single::resp::test::it_errors_on_unknown_resp_type' panicked at src/proto/single/resp.rs:401:33: -called `Result::unwrap_err()` on an `Ok` value: None - ----- proto::single::resp::test::it_decodes_blob_json stdout ---- -thread 'proto::single::resp::test::it_decodes_blob_json' panicked at src/proto/single/resp.rs:358:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- proto::single::resp::test::it_errors_on_bad_json_blob stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_blob' panicked at src/proto/single/resp.rs:364:63: -called `Result::unwrap_err()` on an `Ok` value: None - ----- proto::single::resp::test::it_decodes_string_json stdout ---- -thread 'proto::single::resp::test::it_decodes_string_json' panicked at src/proto/single/resp.rs:350:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) - ----- proto::single::resp::test::it_errors_on_bad_json_string stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_string' panicked at src/proto/single/resp.rs:374:63: -called `Result::unwrap_err()` on an `Ok` value: None - ----- proto::single::resp::test::json_error_on_number stdout ---- -thread 'proto::single::resp::test::json_error_on_number' panicked at src/proto/single/resp.rs:387:33: -called `Result::unwrap_err()` on an `Ok` value: None - - -failures: - proto::single::resp::test::it_decodes_blob_json - proto::single::resp::test::it_decodes_string_json - proto::single::resp::test::it_errors_on_bad_json_blob - proto::single::resp::test::it_errors_on_bad_json_string - proto::single::resp::test::it_errors_on_unknown_resp_type - proto::single::resp::test::json_error_on_number - -test result: FAILED. 29 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.29s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_39_col_41.log b/mutants.out.old/log/src__proto__single__resp.rs_line_39_col_41.log deleted file mode 100644 index 873709bb..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_39_col_41.log +++ /dev/null @@ -1,101 +0,0 @@ - -*** src/proto/single/resp.rs:39:41: replace == with != in read_json - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace == with != in read_json -@@ -31,17 +31,17 @@ - - // ---------------------------------------------- - - pub async fn read_json( - r: R, - ) -> Result, Error> { - let rr = read(r).await?; - match rr { -- RawResponse::String(ref s) if s == "OK" => { -+ RawResponse::String(ref s) if s != /* ~ changed by cargo-mutants ~ */ "OK" => { - return Ok(None); - } - RawResponse::String(ref s) => { - return serde_json::from_str(s) - .map(Some) - .map_err(Error::Serialization); - } - RawResponse::Blob(ref b) if b == b"OK" => { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 2.13s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... FAILED -test proto::single::resp::test::it_decodes_string_json ... FAILED -test proto::single::resp::test::it_errors_on_bad_json_string ... FAILED -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_json_ok_string stdout ---- -thread 'proto::single::resp::test::it_decodes_json_ok_string' panicked at src/proto/single/resp.rs:349:39: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- proto::single::resp::test::it_decodes_string_json stdout ---- -thread 'proto::single::resp::test::it_decodes_string_json' panicked at src/proto/single/resp.rs:375:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) - ----- proto::single::resp::test::it_errors_on_bad_json_string stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_string' panicked at src/proto/single/resp.rs:399:63: -called `Result::unwrap_err()` on an `Ok` value: None - - -failures: - proto::single::resp::test::it_decodes_json_ok_string - proto::single::resp::test::it_decodes_string_json - proto::single::resp::test::it_errors_on_bad_json_string - -test result: FAILED. 32 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.39s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_47_col_39.log b/mutants.out.old/log/src__proto__single__resp.rs_line_47_col_39.log deleted file mode 100644 index 5b30b269..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_47_col_39.log +++ /dev/null @@ -1,102 +0,0 @@ - -*** src/proto/single/resp.rs:47:39: replace == with != in read_json - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace == with != in read_json -@@ -39,17 +39,17 @@ - RawResponse::String(ref s) if s == "OK" => { - return Ok(None); - } - RawResponse::String(ref s) => { - return serde_json::from_str(s) - .map(Some) - .map_err(Error::Serialization); - } -- RawResponse::Blob(ref b) if b == b"OK" => { -+ RawResponse::Blob(ref b) if b != /* ~ changed by cargo-mutants ~ */ b"OK" => { - return Ok(None); - } - RawResponse::Blob(ref b) => { - if b.is_empty() { - return Ok(None); - } - return serde_json::from_slice(b) - .map(Some) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.47s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... FAILED -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... FAILED -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... FAILED -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_blob_json stdout ---- -thread 'proto::single::resp::test::it_decodes_blob_json' panicked at src/proto/single/resp.rs:383:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- proto::single::resp::test::it_decodes_json_ok_blob stdout ---- -thread 'proto::single::resp::test::it_decodes_json_ok_blob' panicked at src/proto/single/resp.rs:355:39: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- proto::single::resp::test::it_errors_on_bad_json_blob stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_blob' panicked at src/proto/single/resp.rs:389:63: -called `Result::unwrap_err()` on an `Ok` value: None - - -failures: - proto::single::resp::test::it_decodes_blob_json - proto::single::resp::test::it_decodes_json_ok_blob - proto::single::resp::test::it_errors_on_bad_json_blob - -test result: FAILED. 32 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.10s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_69_col_5.log b/mutants.out.old/log/src__proto__single__resp.rs_line_69_col_5.log deleted file mode 100644 index dfd41f23..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_69_col_5.log +++ /dev/null @@ -1,181 +0,0 @@ - -*** src/proto/single/resp.rs:69:5: replace read_bid -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_bid -> Result with Ok(Default::default()) -@@ -61,30 +61,17 @@ - - Err(bad("json", &rr).into()) - } - - // ---------------------------------------------- - - #[cfg(feature = "ent")] - pub async fn read_bid(r: R) -> Result { -- match read(r).await? { -- RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { -- expected: "non-empty blob representation of batch id", -- received: "empty blob".into(), -- } -- .into()), -- RawResponse::Blob(ref b) => Ok(std::str::from_utf8(b) -- .map_err(|_| error::Protocol::BadType { -- expected: "valid blob representation of batch id", -- received: "unprocessable blob".into(), -- })? -- .into()), -- something_else => Err(bad("id", &something_else).into()), -- } -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - #[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] - pub struct Hi { - #[serde(rename = "v")] - pub version: usize, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.65s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.04s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test community::hello_client ... ok -test community::enqueue_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_8_col_5.log b/mutants.out.old/log/src__proto__single__resp.rs_line_8_col_5.log deleted file mode 100644 index 548ea26e..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_8_col_5.log +++ /dev/null @@ -1,61 +0,0 @@ - -*** src/proto/single/resp.rs:8:5: replace bad -> error::Protocol with Default::default() - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace bad -> error::Protocol with Default::default() -@@ -1,37 +1,16 @@ - #[cfg(feature = "ent")] - use crate::ent::BatchId; - - use crate::error::{self, Error}; - use tokio::io::{AsyncBufReadExt, AsyncReadExt}; - - pub fn bad(expected: &'static str, got: &RawResponse) -> error::Protocol { -- let stringy = match *got { -- RawResponse::String(ref s) => Some(&**s), -- RawResponse::Blob(ref b) => { -- if let Ok(s) = std::str::from_utf8(b) { -- Some(s) -- } else { -- None -- } -- } -- _ => None, -- }; -- -- match stringy { -- Some(s) => error::Protocol::BadType { -- expected, -- received: s.to_string(), -- }, -- None => error::Protocol::BadType { -- expected, -- received: format!("{:?}", got), -- }, -- } -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - pub async fn read_json( - r: R, - ) -> Result, Error> { - let rr = read(r).await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `error::Protocol: Default` is not satisfied - --> src/proto/single/resp.rs:8:5 - | -8 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `error::Protocol` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__resp.rs_line_98_col_5.log b/mutants.out.old/log/src__proto__single__resp.rs_line_98_col_5.log deleted file mode 100644 index cd557c8a..00000000 --- a/mutants.out.old/log/src__proto__single__resp.rs_line_98_col_5.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/single/resp.rs:98:5: replace read_hi -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_hi -> Result with Ok(Default::default()) -@@ -90,23 +90,17 @@ - pub version: usize, - #[serde(rename = "i")] - pub iterations: Option, - #[serde(rename = "s")] - pub salt: Option, - } - - pub async fn read_hi(r: R) -> Result { -- let rr = read(r).await?; -- if let RawResponse::String(ref s) = rr { -- if let Some(s) = s.strip_prefix("HI ") { -- return serde_json::from_str(s).map_err(Error::Serialization); -- } -- } -- Err(bad("server hi", &rr).into()) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - pub async fn read_ok(r: R) -> Result<(), Error> { - let rr = read(r).await?; - if let RawResponse::String(ref s) = rr { - if s == "OK" { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Hi: Default` is not satisfied - --> src/proto/single/resp.rs:98:8 - | -98 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Hi` - | -help: consider annotating `Hi` with `#[derive(Default)]` - | -88 + #[derive(Default)] -89 | pub struct Hi { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__utils.rs_line_15_col_5.log b/mutants.out.old/log/src__proto__single__utils.rs_line_15_col_5.log deleted file mode 100644 index e8443188..00000000 --- a/mutants.out.old/log/src__proto__single__utils.rs_line_15_col_5.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/proto/single/utils.rs:15:5: replace gen_random_jid -> String with String::new() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_jid -> String with String::new() -@@ -7,17 +7,17 @@ - thread_rng() - .sample_iter(&rand::distributions::Alphanumeric) - .map(char::from) - .take(length) - .collect() - } - - pub(crate) fn gen_random_jid() -> String { -- gen_random_id(JOB_ID_LENGTH) -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn gen_random_wid() -> String { - gen_random_id(WORKER_ID_LENGTH) - } - - #[cfg(test)] - mod test { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.55s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... FAILED -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("") - right: JobId("") - ----- proto::single::test::test_job_can_be_created_with_builder stdout ---- -thread 'proto::single::test::test_job_can_be_created_with_builder' panicked at src/proto/single/mod.rs:292:9: -assertion failed: job.jid != "".into() - - -failures: - proto::single::test::test_all_job_creation_variants_align - proto::single::test::test_job_can_be_created_with_builder - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.29s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__utils.rs_line_15_col_5_001.log b/mutants.out.old/log/src__proto__single__utils.rs_line_15_col_5_001.log deleted file mode 100644 index db22e250..00000000 --- a/mutants.out.old/log/src__proto__single__utils.rs_line_15_col_5_001.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/single/utils.rs:15:5: replace gen_random_jid -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_jid -> String with "xyzzy".into() -@@ -7,17 +7,17 @@ - thread_rng() - .sample_iter(&rand::distributions::Alphanumeric) - .map(char::from) - .take(length) - .collect() - } - - pub(crate) fn gen_random_jid() -> String { -- gen_random_id(JOB_ID_LENGTH) -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn gen_random_wid() -> String { - gen_random_id(WORKER_ID_LENGTH) - } - - #[cfg(test)] - mod test { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.67s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("xyzzy") - right: JobId("xyzzy") - - -failures: - proto::single::test::test_all_job_creation_variants_align - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__utils.rs_line_19_col_5.log b/mutants.out.old/log/src__proto__single__utils.rs_line_19_col_5.log deleted file mode 100644 index b6a141cd..00000000 --- a/mutants.out.old/log/src__proto__single__utils.rs_line_19_col_5.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/utils.rs:19:5: replace gen_random_wid -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_wid -> String with "xyzzy".into() -@@ -11,17 +11,17 @@ - .collect() - } - - pub(crate) fn gen_random_jid() -> String { - gen_random_id(JOB_ID_LENGTH) - } - - pub(crate) fn gen_random_wid() -> String { -- gen_random_id(WORKER_ID_LENGTH) -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - #[cfg(test)] - mod test { - use super::*; - use std::collections::HashSet; - - #[test] - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.48s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.30s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job ... ok -test community::enqueue_job ... ok -test community::fail ... ok -test community::roundtrip ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::queue ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__utils.rs_line_19_col_5_001.log b/mutants.out.old/log/src__proto__single__utils.rs_line_19_col_5_001.log deleted file mode 100644 index 5c271894..00000000 --- a/mutants.out.old/log/src__proto__single__utils.rs_line_19_col_5_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/single/utils.rs:19:5: replace gen_random_wid -> String with String::new() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_wid -> String with String::new() -@@ -11,17 +11,17 @@ - .collect() - } - - pub(crate) fn gen_random_jid() -> String { - gen_random_id(JOB_ID_LENGTH) - } - - pub(crate) fn gen_random_wid() -> String { -- gen_random_id(WORKER_ID_LENGTH) -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - #[cfg(test)] - mod test { - use super::*; - use std::collections::HashSet; - - #[test] - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.55s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.09s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok -test enterprise::ent_expiring_job ... ok -test community::enqueue_job ... ok -test community::hello_worker ... ok -test community::hello_client ... ok -test community::roundtrip ... ok -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__single__utils.rs_line_7_col_5.log b/mutants.out.old/log/src__proto__single__utils.rs_line_7_col_5.log deleted file mode 100644 index 0bb4fc8c..00000000 --- a/mutants.out.old/log/src__proto__single__utils.rs_line_7_col_5.log +++ /dev/null @@ -1,107 +0,0 @@ - -*** src/proto/single/utils.rs:7:5: replace gen_random_id -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_id -> String with "xyzzy".into() -@@ -1,19 +1,15 @@ - use rand::{thread_rng, Rng}; - - const JOB_ID_LENGTH: usize = 16; - const WORKER_ID_LENGTH: usize = 32; - - fn gen_random_id(length: usize) -> String { -- thread_rng() -- .sample_iter(&rand::distributions::Alphanumeric) -- .map(char::from) -- .take(length) -- .collect() -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn gen_random_jid() -> String { - gen_random_id(JOB_ID_LENGTH) - } - - pub(crate) fn gen_random_wid() -> String { - gen_random_id(WORKER_ID_LENGTH) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.45s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... FAILED -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... FAILED - -failures: - ----- proto::single::utils::test::test_id_of_known_size_generated stdout ---- -thread 'proto::single::utils::test::test_id_of_known_size_generated' panicked at src/proto/single/utils.rs:27:9: -assertion `left != right` failed - left: "xyzzy" - right: "xyzzy" - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("xyzzy") - right: JobId("xyzzy") - ----- proto::single::utils::test::test_ids_are_unique stdout ---- -thread 'proto::single::utils::test::test_ids_are_unique' panicked at src/proto/single/utils.rs:46:9: -assertion `left == right` failed - left: 1 - right: 1000000 - - -failures: - proto::single::test::test_all_job_creation_variants_align - proto::single::utils::test::test_id_of_known_size_generated - proto::single::utils::test::test_ids_are_unique - -test result: FAILED. 32 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__single__utils.rs_line_7_col_5_001.log b/mutants.out.old/log/src__proto__single__utils.rs_line_7_col_5_001.log deleted file mode 100644 index 084cbb23..00000000 --- a/mutants.out.old/log/src__proto__single__utils.rs_line_7_col_5_001.log +++ /dev/null @@ -1,112 +0,0 @@ - -*** src/proto/single/utils.rs:7:5: replace gen_random_id -> String with String::new() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_id -> String with String::new() -@@ -1,19 +1,15 @@ - use rand::{thread_rng, Rng}; - - const JOB_ID_LENGTH: usize = 16; - const WORKER_ID_LENGTH: usize = 32; - - fn gen_random_id(length: usize) -> String { -- thread_rng() -- .sample_iter(&rand::distributions::Alphanumeric) -- .map(char::from) -- .take(length) -- .collect() -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn gen_random_jid() -> String { - gen_random_id(JOB_ID_LENGTH) - } - - pub(crate) fn gen_random_wid() -> String { - gen_random_id(WORKER_ID_LENGTH) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.87s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::test::test_job_can_be_created_with_builder ... FAILED -test proto::single::utils::test::test_id_of_known_size_generated ... FAILED -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... FAILED - -failures: - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("") - right: JobId("") - ----- proto::single::test::test_job_can_be_created_with_builder stdout ---- -thread 'proto::single::test::test_job_can_be_created_with_builder' panicked at src/proto/single/mod.rs:292:9: -assertion failed: job.jid != "".into() - ----- proto::single::utils::test::test_id_of_known_size_generated stdout ---- -thread 'proto::single::utils::test::test_id_of_known_size_generated' panicked at src/proto/single/utils.rs:27:9: -assertion `left != right` failed - left: "" - right: "" - ----- proto::single::utils::test::test_ids_are_unique stdout ---- -thread 'proto::single::utils::test::test_ids_are_unique' panicked at src/proto/single/utils.rs:46:9: -assertion `left == right` failed - left: 1 - right: 1000000 - - -failures: - proto::single::test::test_all_job_creation_variants_align - proto::single::test::test_job_can_be_created_with_builder - proto::single::utils::test::test_id_of_known_size_generated - proto::single::utils::test::test_ids_are_unique - -test result: FAILED. 31 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__utils.rs_line_11_col_5.log b/mutants.out.old/log/src__proto__utils.rs_line_11_col_5.log deleted file mode 100644 index 3a2e15b1..00000000 --- a/mutants.out.old/log/src__proto__utils.rs_line_11_col_5.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/utils.rs:11:5: replace host_from_url -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/utils.rs -+++ replace host_from_url -> String with "xyzzy".into() -@@ -3,17 +3,17 @@ - - pub(crate) fn get_env_url() -> String { - use std::env; - let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); - env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) - } - - pub(crate) fn host_from_url(url: &Url) -> String { -- format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - if url.scheme() != "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.15s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... FAILED -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::url_port_default stdout ---- -thread 'proto::utils::tests::url_port_default' panicked at src/proto/utils.rs:61:9: -assertion `left == right` failed - left: "xyzzy" - right: "example.com:7419" - - -failures: - proto::utils::tests::url_port_default - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.02s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__utils.rs_line_11_col_5_001.log b/mutants.out.old/log/src__proto__utils.rs_line_11_col_5_001.log deleted file mode 100644 index 4a015e87..00000000 --- a/mutants.out.old/log/src__proto__utils.rs_line_11_col_5_001.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/utils.rs:11:5: replace host_from_url -> String with String::new() - -*** mutation diff: ---- src/proto/utils.rs -+++ replace host_from_url -> String with String::new() -@@ -3,17 +3,17 @@ - - pub(crate) fn get_env_url() -> String { - use std::env; - let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); - env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) - } - - pub(crate) fn host_from_url(url: &Url) -> String { -- format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - if url.scheme() != "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.44s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... FAILED -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::url_port_default stdout ---- -thread 'proto::utils::tests::url_port_default' panicked at src/proto/utils.rs:61:9: -assertion `left == right` failed - left: "" - right: "example.com:7419" - - -failures: - proto::utils::tests::url_port_default - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.18s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__utils.rs_line_15_col_5.log b/mutants.out.old/log/src__proto__utils.rs_line_15_col_5.log deleted file mode 100644 index d0df1b18..00000000 --- a/mutants.out.old/log/src__proto__utils.rs_line_15_col_5.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/utils.rs:15:5: replace url_parse -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/utils.rs -+++ replace url_parse -> Result with Ok(Default::default()) -@@ -7,29 +7,17 @@ - env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) - } - - pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) - } - - pub(crate) fn url_parse(url: &str) -> Result { -- let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; -- if url.scheme() != "tcp" { -- return Err(error::Connect::BadScheme { -- scheme: url.scheme().to_string(), -- } -- .into()); -- } -- -- if url.host_str().is_none() || url.host_str().unwrap().is_empty() { -- return Err(error::Connect::MissingHostname.into()); -- } -- -- Ok(url) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn parse_provided_or_from_env(url: Option<&str>) -> Result { - url_parse(url.unwrap_or(&get_env_url())) - } - - #[cfg(test)] - mod tests { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Url: Default` is not satisfied - --> src/proto/utils.rs:15:8 - | -15 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Url` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__utils.rs_line_16_col_21.log b/mutants.out.old/log/src__proto__utils.rs_line_16_col_21.log deleted file mode 100644 index b0e93e73..00000000 --- a/mutants.out.old/log/src__proto__utils.rs_line_16_col_21.log +++ /dev/null @@ -1,94 +0,0 @@ - -*** src/proto/utils.rs:16:21: replace != with == in url_parse - -*** mutation diff: ---- src/proto/utils.rs -+++ replace != with == in url_parse -@@ -8,17 +8,17 @@ - } - - pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; -- if url.scheme() != "tcp" { -+ if url.scheme() == /* ~ changed by cargo-mutants ~ */ "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - .into()); - } - - if url.host_str().is_none() || url.host_str().unwrap().is_empty() { - return Err(error::Connect::MissingHostname.into()); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.66s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... FAILED -test proto::utils::tests::url_can_take_password_and_port ... FAILED -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::url_doesnt_require_port stdout ---- -thread 'proto::utils::tests::url_doesnt_require_port' panicked at src/proto/utils.rs:76:40: -called `Result::unwrap()` on an `Err` value: Connect(BadScheme { scheme: "tcp" }) - ----- proto::utils::tests::url_can_take_password_and_port stdout ---- -thread 'proto::utils::tests::url_can_take_password_and_port' panicked at src/proto/utils.rs:81:53: -called `Result::unwrap()` on an `Err` value: Connect(BadScheme { scheme: "tcp" }) - - -failures: - proto::utils::tests::url_can_take_password_and_port - proto::utils::tests::url_doesnt_require_port - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__utils.rs_line_23_col_33.log b/mutants.out.old/log/src__proto__utils.rs_line_23_col_33.log deleted file mode 100644 index 51ecd860..00000000 --- a/mutants.out.old/log/src__proto__utils.rs_line_23_col_33.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/proto/utils.rs:23:33: replace || with && in url_parse - -*** mutation diff: ---- src/proto/utils.rs -+++ replace || with && in url_parse -@@ -15,17 +15,17 @@ - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - if url.scheme() != "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - .into()); - } - -- if url.host_str().is_none() || url.host_str().unwrap().is_empty() { -+ if url.host_str().is_none() && /* ~ changed by cargo-mutants ~ */ url.host_str().unwrap().is_empty() { - return Err(error::Connect::MissingHostname.into()); - } - - Ok(url) - } - - pub(crate) fn parse_provided_or_from_env(url: Option<&str>) -> Result { - url_parse(url.unwrap_or(&get_env_url())) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.28s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::multi ... ok -test community::queue ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job ... ok -test community::enqueue_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_client ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s - - -*** result: Success diff --git a/mutants.out.old/log/src__proto__utils.rs_line_31_col_5.log b/mutants.out.old/log/src__proto__utils.rs_line_31_col_5.log deleted file mode 100644 index b2b94022..00000000 --- a/mutants.out.old/log/src__proto__utils.rs_line_31_col_5.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/utils.rs:31:5: replace parse_provided_or_from_env -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/utils.rs -+++ replace parse_provided_or_from_env -> Result with Ok(Default::default()) -@@ -23,17 +23,17 @@ - if url.host_str().is_none() || url.host_str().unwrap().is_empty() { - return Err(error::Connect::MissingHostname.into()); - } - - Ok(url) - } - - pub(crate) fn parse_provided_or_from_env(url: Option<&str>) -> Result { -- url_parse(url.unwrap_or(&get_env_url())) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - #[cfg(test)] - mod tests { - use super::*; - - #[test] - fn correct_env_parsing() { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Url: Default` is not satisfied - --> src/proto/utils.rs:31:8 - | -31 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Url` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__utils.rs_line_5_col_5.log b/mutants.out.old/log/src__proto__utils.rs_line_5_col_5.log deleted file mode 100644 index 488d9a9c..00000000 --- a/mutants.out.old/log/src__proto__utils.rs_line_5_col_5.log +++ /dev/null @@ -1,89 +0,0 @@ - -*** src/proto/utils.rs:5:5: replace get_env_url -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/utils.rs -+++ replace get_env_url -> String with "xyzzy".into() -@@ -1,15 +1,13 @@ - use crate::error::{self, Error}; - use url::Url; - - pub(crate) fn get_env_url() -> String { -- use std::env; -- let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); -- env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.27s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.02s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... FAILED -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::correct_env_parsing stdout ---- -thread 'proto::utils::tests::correct_env_parsing' panicked at src/proto/utils.rs:45:9: -assertion `left == right` failed - left: "xyzzy" - right: "tcp://localhost:7419" - - -failures: - proto::utils::tests::correct_env_parsing - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.03s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__proto__utils.rs_line_5_col_5_001.log b/mutants.out.old/log/src__proto__utils.rs_line_5_col_5_001.log deleted file mode 100644 index ff508cc0..00000000 --- a/mutants.out.old/log/src__proto__utils.rs_line_5_col_5_001.log +++ /dev/null @@ -1,89 +0,0 @@ - -*** src/proto/utils.rs:5:5: replace get_env_url -> String with String::new() - -*** mutation diff: ---- src/proto/utils.rs -+++ replace get_env_url -> String with String::new() -@@ -1,15 +1,13 @@ - use crate::error::{self, Error}; - use url::Url; - - pub(crate) fn get_env_url() -> String { -- use std::env; -- let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); -- env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.15s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... FAILED -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::correct_env_parsing stdout ---- -thread 'proto::utils::tests::correct_env_parsing' panicked at src/proto/utils.rs:45:9: -assertion `left == right` failed - left: "" - right: "tcp://localhost:7419" - - -failures: - proto::utils::tests::correct_env_parsing - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.35s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_116_col_9.log b/mutants.out.old/log/src__tls.rs_line_116_col_9.log deleted file mode 100644 index 94cd8222..00000000 --- a/mutants.out.old/log/src__tls.rs_line_116_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:116:9: replace >::reconnect -> io::Result with Ok(Default::default()) - -*** mutation diff: ---- src/tls.rs -+++ replace >::reconnect -> io::Result with Ok(Default::default()) -@@ -108,24 +108,17 @@ - } - - #[async_trait::async_trait] - impl Reconnect for TlsStream - where - S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static + Sync, - { - async fn reconnect(&mut self) -> io::Result { -- let stream = self -- .stream -- .get_mut() -- .get_mut() -- .get_mut() -- .reconnect() -- .await?; -- Self::new(stream, self.connector.clone(), &self.hostname).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Deref for TlsStream { - type Target = NativeTlsStream; - fn deref(&self) -> &Self::Target { - &self.stream - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `tls::TlsStream: Default` is not satisfied - --> src/tls.rs:116:12 - | -116 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_130_col_9.log b/mutants.out.old/log/src__tls.rs_line_130_col_9.log deleted file mode 100644 index c4def916..00000000 --- a/mutants.out.old/log/src__tls.rs_line_130_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/tls.rs:130:9: replace >::deref -> &Self::Target with &Default::default() - -*** mutation diff: ---- src/tls.rs -+++ replace >::deref -> &Self::Target with &Default::default() -@@ -122,17 +122,17 @@ - .await?; - Self::new(stream, self.connector.clone(), &self.hostname).await - } - } - - impl Deref for TlsStream { - type Target = NativeTlsStream; - fn deref(&self) -> &Self::Target { -- &self.stream -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl DerefMut for TlsStream { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.stream - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `tokio_native_tls::TlsStream: Default` is not satisfied - --> src/tls.rs:130:10 - | -130 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tokio_native_tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_136_col_9.log b/mutants.out.old/log/src__tls.rs_line_136_col_9.log deleted file mode 100644 index b0c3cc13..00000000 --- a/mutants.out.old/log/src__tls.rs_line_136_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/tls.rs:136:9: replace >::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) -@@ -128,17 +128,17 @@ - type Target = NativeTlsStream; - fn deref(&self) -> &Self::Target { - &self.stream - } - } - - impl DerefMut for TlsStream { - fn deref_mut(&mut self) -> &mut Self::Target { -- &mut self.stream -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `tokio_native_tls::TlsStream: Default` is not satisfied - --> src/tls.rs:136:28 - | -136 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tokio_native_tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_146_col_9.log b/mutants.out.old/log/src__tls.rs_line_146_col_9.log deleted file mode 100644 index 1d34c7b9..00000000 --- a/mutants.out.old/log/src__tls.rs_line_146_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::from_iter([Ok(())]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_read -> std::task::Poll> with Poll::from_iter([Ok(())]) -@@ -138,17 +138,17 @@ - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_read(cx, buf) -+ Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:146:9 - | -146 | Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_146_col_9_001.log b/mutants.out.old/log/src__tls.rs_line_146_col_9_001.log deleted file mode 100644 index 1c01a834..00000000 --- a/mutants.out.old/log/src__tls.rs_line_146_col_9_001.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::from(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_read -> std::task::Poll> with Poll::from(Ok(())) -@@ -138,17 +138,17 @@ - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_read(cx, buf) -+ Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:146:9 - | -146 | Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_146_col_9_002.log b/mutants.out.old/log/src__tls.rs_line_146_col_9_002.log deleted file mode 100644 index 7f2bea3e..00000000 --- a/mutants.out.old/log/src__tls.rs_line_146_col_9_002.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::new() - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_read -> std::task::Poll> with Poll::new() -@@ -138,17 +138,17 @@ - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_read(cx, buf) -+ Poll::new() /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:146:9 - | -146 | Poll::new() /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_146_col_9_003.log b/mutants.out.old/log/src__tls.rs_line_146_col_9_003.log deleted file mode 100644 index 3ebc14aa..00000000 --- a/mutants.out.old/log/src__tls.rs_line_146_col_9_003.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::new(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_read -> std::task::Poll> with Poll::new(Ok(())) -@@ -138,17 +138,17 @@ - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_read(cx, buf) -+ Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:146:9 - | -146 | Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_156_col_9.log b/mutants.out.old/log/src__tls.rs_line_156_col_9.log deleted file mode 100644 index a618e66a..00000000 --- a/mutants.out.old/log/src__tls.rs_line_156_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from(Ok(1)) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::from(Ok(1)) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::from(Ok(1)) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::from(Ok(1)) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_156_col_9_001.log b/mutants.out.old/log/src__tls.rs_line_156_col_9_001.log deleted file mode 100644 index b73677e6..00000000 --- a/mutants.out.old/log/src__tls.rs_line_156_col_9_001.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(1)]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(1)]) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::from_iter([Ok(1)]) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::from_iter([Ok(1)]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib test) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_156_col_9_002.log b/mutants.out.old/log/src__tls.rs_line_156_col_9_002.log deleted file mode 100644 index 4752a01d..00000000 --- a/mutants.out.old/log/src__tls.rs_line_156_col_9_002.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new() - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::new() -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::new() /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::new() /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_156_col_9_003.log b/mutants.out.old/log/src__tls.rs_line_156_col_9_003.log deleted file mode 100644 index ebc84bd7..00000000 --- a/mutants.out.old/log/src__tls.rs_line_156_col_9_003.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new(Ok(0)) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::new(Ok(0)) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::new(Ok(0)) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::new(Ok(0)) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_156_col_9_004.log b/mutants.out.old/log/src__tls.rs_line_156_col_9_004.log deleted file mode 100644 index a8886912..00000000 --- a/mutants.out.old/log/src__tls.rs_line_156_col_9_004.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new(Ok(1)) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::new(Ok(1)) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::new(Ok(1)) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::new(Ok(1)) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_156_col_9_005.log b/mutants.out.old/log/src__tls.rs_line_156_col_9_005.log deleted file mode 100644 index 859f980c..00000000 --- a/mutants.out.old/log/src__tls.rs_line_156_col_9_005.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from(Ok(0)) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::from(Ok(0)) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::from(Ok(0)) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::from(Ok(0)) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_156_col_9_006.log b/mutants.out.old/log/src__tls.rs_line_156_col_9_006.log deleted file mode 100644 index df82feca..00000000 --- a/mutants.out.old/log/src__tls.rs_line_156_col_9_006.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(0)]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(0)]) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::from_iter([Ok(0)]) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::from_iter([Ok(0)]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_163_col_9.log b/mutants.out.old/log/src__tls.rs_line_163_col_9.log deleted file mode 100644 index 3f185a5b..00000000 --- a/mutants.out.old/log/src__tls.rs_line_163_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::new() - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_flush -> std::task::Poll> with Poll::new() -@@ -155,17 +155,17 @@ - ) -> std::task::Poll> { - self.project().stream.poll_write(cx, buf) - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_flush(cx) -+ Poll::new() /* ~ changed by cargo-mutants ~ */ - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_shutdown(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:163:9 - | -163 | Poll::new() /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_163_col_9_001.log b/mutants.out.old/log/src__tls.rs_line_163_col_9_001.log deleted file mode 100644 index af4901d4..00000000 --- a/mutants.out.old/log/src__tls.rs_line_163_col_9_001.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::new(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_flush -> std::task::Poll> with Poll::new(Ok(())) -@@ -155,17 +155,17 @@ - ) -> std::task::Poll> { - self.project().stream.poll_write(cx, buf) - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_flush(cx) -+ Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_shutdown(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:163:9 - | -163 | Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_163_col_9_002.log b/mutants.out.old/log/src__tls.rs_line_163_col_9_002.log deleted file mode 100644 index b9d2c9de..00000000 --- a/mutants.out.old/log/src__tls.rs_line_163_col_9_002.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::from_iter([Ok(())]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_flush -> std::task::Poll> with Poll::from_iter([Ok(())]) -@@ -155,17 +155,17 @@ - ) -> std::task::Poll> { - self.project().stream.poll_write(cx, buf) - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_flush(cx) -+ Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_shutdown(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:163:9 - | -163 | Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_163_col_9_003.log b/mutants.out.old/log/src__tls.rs_line_163_col_9_003.log deleted file mode 100644 index 3dfa9e00..00000000 --- a/mutants.out.old/log/src__tls.rs_line_163_col_9_003.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::from(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_flush -> std::task::Poll> with Poll::from(Ok(())) -@@ -155,17 +155,17 @@ - ) -> std::task::Poll> { - self.project().stream.poll_write(cx, buf) - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_flush(cx) -+ Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_shutdown(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:163:9 - | -163 | Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_170_col_9.log b/mutants.out.old/log/src__tls.rs_line_170_col_9.log deleted file mode 100644 index 5c175c13..00000000 --- a/mutants.out.old/log/src__tls.rs_line_170_col_9.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::from_iter([Ok(())]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_shutdown -> std::task::Poll> with Poll::from_iter([Ok(())]) -@@ -162,11 +162,11 @@ - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_shutdown(cx) -+ Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:170:9 - | -170 | Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_170_col_9_001.log b/mutants.out.old/log/src__tls.rs_line_170_col_9_001.log deleted file mode 100644 index d74c87ca..00000000 --- a/mutants.out.old/log/src__tls.rs_line_170_col_9_001.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::new() - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_shutdown -> std::task::Poll> with Poll::new() -@@ -162,11 +162,11 @@ - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_shutdown(cx) -+ Poll::new() /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:170:9 - | -170 | Poll::new() /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_170_col_9_002.log b/mutants.out.old/log/src__tls.rs_line_170_col_9_002.log deleted file mode 100644 index ea652ba8..00000000 --- a/mutants.out.old/log/src__tls.rs_line_170_col_9_002.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::new(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_shutdown -> std::task::Poll> with Poll::new(Ok(())) -@@ -162,11 +162,11 @@ - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_shutdown(cx) -+ Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:170:9 - | -170 | Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_170_col_9_003.log b/mutants.out.old/log/src__tls.rs_line_170_col_9_003.log deleted file mode 100644 index c3048939..00000000 --- a/mutants.out.old/log/src__tls.rs_line_170_col_9_003.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::from(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_shutdown -> std::task::Poll> with Poll::from(Ok(())) -@@ -162,11 +162,11 @@ - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_shutdown(cx) -+ Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:170:9 - | -170 | Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_52_col_9.log b/mutants.out.old/log/src__tls.rs_line_52_col_9.log deleted file mode 100644 index 8d3252a4..00000000 --- a/mutants.out.old/log/src__tls.rs_line_52_col_9.log +++ /dev/null @@ -1,45 +0,0 @@ - -*** src/tls.rs:52:9: replace TlsStream::connect -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/tls.rs -+++ replace TlsStream::connect -> Result with Ok(Default::default()) -@@ -44,21 +44,17 @@ - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - /// - /// If `url` is given, but does not specify a port, it defaults to 7419. - pub async fn connect(url: Option<&str>) -> Result { -- TlsStream::with_connector( -- TlsConnector::builder().build().map_err(Error::TlsStream)?, -- url, -- ) -- .await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new TLS connection over TCP using a non-default TLS configuration. - /// - /// See `connect` for details about the `url` parameter. - pub async fn with_connector(connector: TlsConnector, url: Option<&str>) -> Result { - let url = match url { - Some(url) => utils::url_parse(url), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `tls::TlsStream: Default` is not satisfied - --> src/tls.rs:52:12 - | -52 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_63_col_9.log b/mutants.out.old/log/src__tls.rs_line_63_col_9.log deleted file mode 100644 index b26d71d2..00000000 --- a/mutants.out.old/log/src__tls.rs_line_63_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/tls.rs:63:9: replace TlsStream::with_connector -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/tls.rs -+++ replace TlsStream::with_connector -> Result with Ok(Default::default()) -@@ -55,23 +55,17 @@ - ) - .await - } - - /// Create a new TLS connection over TCP using a non-default TLS configuration. - /// - /// See `connect` for details about the `url` parameter. - pub async fn with_connector(connector: TlsConnector, url: Option<&str>) -> Result { -- let url = match url { -- Some(url) => utils::url_parse(url), -- None => utils::url_parse(&utils::get_env_url()), -- }?; -- let hostname = utils::host_from_url(&url); -- let tcp_stream = TokioTcpStream::connect(&hostname).await?; -- Ok(TlsStream::new(tcp_stream, connector, &hostname).await?) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl TlsStream - where - S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static, - { - /// Create a new TLS connection on an existing stream. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `tls::TlsStream: Default` is not satisfied - --> src/tls.rs:63:12 - | -63 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__tls.rs_line_83_col_9.log b/mutants.out.old/log/src__tls.rs_line_83_col_9.log deleted file mode 100644 index 0582c478..00000000 --- a/mutants.out.old/log/src__tls.rs_line_83_col_9.log +++ /dev/null @@ -1,45 +0,0 @@ - -*** src/tls.rs:83:9: replace TlsStream::default -> io::Result with Ok(Default::default()) - -*** mutation diff: ---- src/tls.rs -+++ replace TlsStream::default -> io::Result with Ok(Default::default()) -@@ -75,21 +75,17 @@ - S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static, - { - /// Create a new TLS connection on an existing stream. - /// - /// Internally creates a `ClientConfig` with an empty root certificates store and no client - /// authentication. Use [`new`](TlsStream::new) for a customized `TlsConnector`. - /// Create a new TLS connection on an existing stream. - pub async fn default(stream: S, hostname: &str) -> io::Result { -- let connector = TlsConnector::builder() -- .build() -- .map_err(Error::TlsStream) -- .unwrap(); -- Self::new(stream, connector, hostname).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new TLS connection on an existing stream with a non-default TLS configuration. - pub async fn new( - stream: S, - connector: impl Into, - hostname: &str, - ) -> io::Result { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `tls::TlsStream: Default` is not satisfied - --> src/tls.rs:83:12 - | -83 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__builder.rs_line_113_col_9.log b/mutants.out.old/log/src__worker__builder.rs_line_113_col_9.log deleted file mode 100644 index 1bba1870..00000000 --- a/mutants.out.old/log/src__worker__builder.rs_line_113_col_9.log +++ /dev/null @@ -1,40 +0,0 @@ - -*** src/worker/builder.rs:113:9: replace WorkerBuilder::connect -> Result, E>, Error> with Ok(Default::default()) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::connect -> Result, E>, Error> with Ok(Default::default()) -@@ -105,16 +105,11 @@ - - /// Asynchronously connect to a Faktory server. - /// - /// See [`connect`](WorkerBuilder::connect). - pub async fn connect( - mut self, - url: Option<&str>, - ) -> Result, E>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- self.opts.is_worker = true; -- let buffered = BufStream::new(stream); -- let client = Client::new(buffered, self.opts).await?; -- Ok(Worker::new(client, self.workers_count, self.callbacks).await) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Worker, E>: Default` is not satisfied - --> src/worker/builder.rs:113:12 - | -113 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Worker, E>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__builder.rs_line_37_col_9.log b/mutants.out.old/log/src__worker__builder.rs_line_37_col_9.log deleted file mode 100644 index fb5e5a60..00000000 --- a/mutants.out.old/log/src__worker__builder.rs_line_37_col_9.log +++ /dev/null @@ -1,113 +0,0 @@ - -*** src/worker/builder.rs:37:9: replace WorkerBuilder::hostname -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::hostname -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -29,18 +29,17 @@ - } - } - - impl WorkerBuilder { - /// Set the hostname to use for this worker. - /// - /// Defaults to the machine's hostname as reported by the operating system. - pub fn hostname(&mut self, hn: String) -> &mut Self { -- self.opts.hostname = Some(hn); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Set a unique identifier for this worker. - /// - /// Defaults to a randomly generated 32-char ASCII string. - pub fn wid(&mut self, wid: WorkerId) -> &mut Self { - self.opts.wid = Some(wid); - self - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.51s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... FAILED -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:20:5: -assertion `left == right` failed - left: Some("rustworthy") - right: Some("host") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - hello - -test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__builder.rs_line_45_col_9.log b/mutants.out.old/log/src__worker__builder.rs_line_45_col_9.log deleted file mode 100644 index 82af666f..00000000 --- a/mutants.out.old/log/src__worker__builder.rs_line_45_col_9.log +++ /dev/null @@ -1,141 +0,0 @@ - -*** src/worker/builder.rs:45:9: replace WorkerBuilder::wid -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::wid -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -37,18 +37,17 @@ - self.opts.hostname = Some(hn); - self - } - - /// Set a unique identifier for this worker. - /// - /// Defaults to a randomly generated 32-char ASCII string. - pub fn wid(&mut self, wid: WorkerId) -> &mut Self { -- self.opts.wid = Some(wid); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Set the labels to use for this worker. - /// - /// Defaults to `["rust"]`. - pub fn labels(&mut self, labels: Vec) -> &mut Self { - self.opts.labels = labels; - self - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.70s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.36s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... FAILED -test dequeue ... ok -test hello_pwd ... ok -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:24:5: -assertion `left == right` failed - left: Some("0iRU9G3pv7bLvwt8YpKCiuuzBdYFwDiw") - right: Some("wid") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:5: -assertion `left == right` failed - left: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 104, 69, 84, 99, 79, 109, 56, 54, 103, 83, 114, 85] - right: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 70, 65, 73, 76, 32] - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"9V02gXiEmxM0l7I8hGFJ5CO8AoJ9EsAG\"}\r\nBEAT {\"wid\":\"9V02gXiEmxM0l7I8hGFJ5CO8AoJ9EsAG\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"mu8zohr2xmieWFbWrRIiWbiDoSoFg7wA\"}\r\nBEAT {\"wid\":\"mu8zohr2xmieWFbWrRIiWbiDoSoFg7wA\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"K3cVw5x5A9xD9mAkRSLdkgYIIbwWLIHT\"}\r\nBEAT {\"wid\":\"K3cVw5x5A9xD9mAkRSLdkgYIIbwWLIHT\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - hello - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__builder.rs_line_53_col_9.log b/mutants.out.old/log/src__worker__builder.rs_line_53_col_9.log deleted file mode 100644 index b784e580..00000000 --- a/mutants.out.old/log/src__worker__builder.rs_line_53_col_9.log +++ /dev/null @@ -1,113 +0,0 @@ - -*** src/worker/builder.rs:53:9: replace WorkerBuilder::labels -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::labels -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -45,18 +45,17 @@ - self.opts.wid = Some(wid); - self - } - - /// Set the labels to use for this worker. - /// - /// Defaults to `["rust"]`. - pub fn labels(&mut self, labels: Vec) -> &mut Self { -- self.opts.labels = labels; -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Set the number of workers to use `run` and `run_to_completion`. - /// - /// Defaults to 1. - pub fn workers(&mut self, w: usize) -> &mut Self { - self.workers_count = w; - self - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.56s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... FAILED -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:28:5: -assertion `left == right` failed - left: [String("rust")] - right: ["foo", "bar"] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - hello - -test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__builder.rs_line_61_col_9.log b/mutants.out.old/log/src__worker__builder.rs_line_61_col_9.log deleted file mode 100644 index 93944be0..00000000 --- a/mutants.out.old/log/src__worker__builder.rs_line_61_col_9.log +++ /dev/null @@ -1,293 +0,0 @@ - -*** src/worker/builder.rs:61:9: replace WorkerBuilder::workers -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::workers -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -53,18 +53,17 @@ - self.opts.labels = labels; - self - } - - /// Set the number of workers to use `run` and `run_to_completion`. - /// - /// Defaults to 1. - pub fn workers(&mut self, w: usize) -> &mut Self { -- self.workers_count = w; -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Register a handler function for the given job type (`kind`). - /// - /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler - /// function is called with that job as its argument. - pub fn register(&mut self, kind: K, handler: H) -> &mut Self - where - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.96s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.09s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.15s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 2 - right: 3 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -thread 'tokio-runtime-worker' panicked at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/src/worker/mod.rs:366:34: -joined ok: JoinError::Panic(Id(251), ...) -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x5a01ab865706 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x5a01ab865706 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x5a01ab865706 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x5a01ab865706 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x5a01ab88ede0 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x5a01ab88ede0 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x5a01ab862d5f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x5a01ab8654e4 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x5a01ab8654e4 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x5a01ab867257 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x5a01ab866f3d - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x5a01ab6feff7 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x5a01ab6feff7 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x5a01ab867876 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x5a01ab867876 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x5a01ab8675c2 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x5a01ab865c06 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x5a01ab867314 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x5a01ab603ca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x5a01ab6042a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x5a01ab62d7b4 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x5a01ab62d7b4 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/mock/mod.rs:136:17 - 22: 0x5a01ab628f73 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x5a01ab62a7e7 - core::ptr::drop_in_place>::haafb117a6bbdf06e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 24: 0x5a01ab622943 - core::ptr::drop_in_place>>::hf5a39e83cd8415e0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 25: 0x5a01ab62a7ca - core::ptr::drop_in_place>::ha83e0c7e9b3aef07 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 26: 0x5a01ab622623 - core::ptr::drop_in_place>>::hdec6cad97b55ee30 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 27: 0x5a01ab622c73 - core::ptr::drop_in_place,std::io::error::Error>>::hb2771cb09b4929cf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 28: 0x5a01ab6a4927 - consumer::well_behaved_many::{{closure}}::{{closure}}::h0d6bec2cfc513964 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:319:59 - 29: 0x5a01ab6bc818 - tokio::runtime::task::core::Core::poll::{{closure}}::h4ef805ba9eeaf4ec - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/core.rs:328:17 - 30: 0x5a01ab6bbf25 - tokio::loom::std::unsafe_cell::UnsafeCell::with_mut::h1091b628ab30f1b4 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/loom/std/unsafe_cell.rs:16:9 - 31: 0x5a01ab6bbf25 - tokio::runtime::task::core::Core::poll::hfb50e0124d3d5ef2 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/core.rs:317:13 - 32: 0x5a01ab6655cf - tokio::runtime::task::harness::poll_future::{{closure}}::h52f5e1dd59cb718e - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:485:19 - 33: 0x5a01ab63242b - as core::ops::function::FnOnce<()>>::call_once::h9606c1b0dbb6d845 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 34: 0x5a01ab639b79 - std::panicking::try::do_call::h1ebd071c0f30d144 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 35: 0x5a01ab63ec9b - __rust_try - 36: 0x5a01ab635263 - std::panicking::try::h0774403093f8fffc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 37: 0x5a01ab62e36a - std::panic::catch_unwind::h80ad1a6b5d19b1f8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 38: 0x5a01ab66402e - tokio::runtime::task::harness::poll_future::hc2524e7e2859b997 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:473:18 - 39: 0x5a01ab66736a - tokio::runtime::task::harness::Harness::poll_inner::h301ca3887a6af90e - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:208:27 - 40: 0x5a01ab66b423 - tokio::runtime::task::harness::Harness::poll::h22ea9903202e4895 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:153:15 - 41: 0x5a01ab6172db - tokio::runtime::task::raw::poll::h6d4a6e143e92b15f - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/raw.rs:271:5 - 42: 0x5a01ab7edd17 - tokio::runtime::task::raw::RawTask::poll::hcf943f465aac79aa - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/raw.rs:201:18 - 43: 0x5a01ab7cd922 - tokio::runtime::task::LocalNotified::run::hd7ac8b1d2a742736 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/mod.rs:416:9 - 44: 0x5a01ab81008d - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}::he9d015aa4f9a0735 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:576:13 - 45: 0x5a01ab80fee4 - tokio::runtime::coop::with_budget::h7542c6ce0a865fe2 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 46: 0x5a01ab80fee4 - tokio::runtime::coop::budget::h8a6a471b9ba98c56 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 47: 0x5a01ab80fee4 - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h9992b4e77044b25c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:575:9 - 48: 0x5a01ab80f581 - tokio::runtime::scheduler::multi_thread::worker::Context::run::ha131a031952fa7f6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:526:24 - 49: 0x5a01ab80f1d9 - tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}::h70879f19216a138b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:491:21 - 50: 0x5a01ab806f30 - tokio::runtime::context::scoped::Scoped::set::hf4f203459b365771 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/scoped.rs:40:9 - 51: 0x5a01ab7ba83b - tokio::runtime::context::set_scheduler::{{closure}}::h73419841132b2805 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context.rs:176:26 - 52: 0x5a01ab7f6bd0 - std::thread::local::LocalKey::try_with::h616a1ebfcd443742 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/local.rs:286:16 - 53: 0x5a01ab7f5d8b - std::thread::local::LocalKey::with::h472a4fb2b5ae8480 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/local.rs:262:9 - 54: 0x5a01ab7ba804 - tokio::runtime::context::set_scheduler::had4c6f19ac23b362 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context.rs:176:9 - 55: 0x5a01ab80f0e1 - tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::h398464830dcdd85c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:486:9 - 56: 0x5a01ab7fc098 - tokio::runtime::context::runtime::enter_runtime::h2b7459b7d8f93de2 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 57: 0x5a01ab80ee7c - tokio::runtime::scheduler::multi_thread::worker::run::hd12af156421a3ab7 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:478:5 - 58: 0x5a01ab80eceb - tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}::h689f1b38fdd6c687 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:447:45 - 59: 0x5a01ab7d0f5e - as core::future::future::Future>::poll::h727537cef5270c88 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/blocking/task.rs:42:21 - 60: 0x5a01ab7ec55d - tokio::runtime::task::core::Core::poll::{{closure}}::h6f5e287e20fe12fb - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/core.rs:328:17 - 61: 0x5a01ab7ec2ef - tokio::loom::std::unsafe_cell::UnsafeCell::with_mut::h2596d4576a395d50 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/loom/std/unsafe_cell.rs:16:9 - 62: 0x5a01ab7ec2ef - tokio::runtime::task::core::Core::poll::h1eafcc0c49a3dea7 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/core.rs:317:13 - 63: 0x5a01ab7cd4b5 - tokio::runtime::task::harness::poll_future::{{closure}}::hf0b1423536e8b959 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:485:19 - 64: 0x5a01ab7cb114 - as core::ops::function::FnOnce<()>>::call_once::hac298307d6062a96 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 65: 0x5a01ab805ef6 - std::panicking::try::do_call::hc94998f51e806524 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 66: 0x5a01ab8080eb - __rust_try - 67: 0x5a01ab805758 - std::panicking::try::h9d2463dc77b1e1d7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 68: 0x5a01ab81320b - std::panic::catch_unwind::h231c91826f15f136 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 69: 0x5a01ab7ccf8f - tokio::runtime::task::harness::poll_future::h2186748f119b193e - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:473:18 - 70: 0x5a01ab7cbde3 - tokio::runtime::task::harness::Harness::poll_inner::h91d977d454587c2f - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:208:27 - 71: 0x5a01ab7cbcb7 - tokio::runtime::task::harness::Harness::poll::h64a9193b78b56870 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:153:15 - 72: 0x5a01ab7edfbd - tokio::runtime::task::raw::poll::ha89b60d48cdae5ec - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/raw.rs:271:5 - 73: 0x5a01ab7edd17 - tokio::runtime::task::raw::RawTask::poll::hcf943f465aac79aa - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/raw.rs:201:18 - 74: 0x5a01ab7cd9e7 - tokio::runtime::task::UnownedTask::run::hbb97b35b9b90f155 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/mod.rs:453:9 - 75: 0x5a01ab7cddc7 - tokio::runtime::blocking::pool::Task::run::h183ebccdf7a14703 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/blocking/pool.rs:159:9 - 76: 0x5a01ab7d047b - tokio::runtime::blocking::pool::Inner::run::h8f8325ee0df9ac42 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/blocking/pool.rs:513:17 - 77: 0x5a01ab7d0184 - tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}::hf00ce7bf1def64d5 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/blocking/pool.rs:471:13 - 78: 0x5a01ab7d3bc6 - std::sys_common::backtrace::__rust_begin_short_backtrace::hde97277e3a752cae - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 79: 0x5a01ab805242 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h4591bcda2fbacf1d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 80: 0x5a01ab7cafb2 - as core::ops::function::FnOnce<()>>::call_once::h286b20545d54a123 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 81: 0x5a01ab805da3 - std::panicking::try::do_call::h4666b48b10a56941 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 82: 0x5a01ab8080eb - __rust_try - 83: 0x5a01ab805601 - std::panicking::try::h804186294056f276 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 84: 0x5a01ab80504f - std::panic::catch_unwind::h22ef83000dd02191 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 85: 0x5a01ab80504f - std::thread::Builder::spawn_unchecked_::{{closure}}::hf6e8f8a2b458ff0b - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 86: 0x5a01ab7b4b5f - core::ops::function::FnOnce::call_once{{vtable.shim}}::h90573c42b78d53a5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 87: 0x5a01ab86bd95 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 88: 0x5a01ab86bd95 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 89: 0x5a01ab86bd95 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 90: 0x7f29e2a94ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 91: 0x7f29e2b26850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 92: 0x0 - -thread 'tokio-runtime-worker' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__builder.rs_line_76_col_9.log b/mutants.out.old/log/src__worker__builder.rs_line_76_col_9.log deleted file mode 100644 index e8ed36b2..00000000 --- a/mutants.out.old/log/src__worker__builder.rs_line_76_col_9.log +++ /dev/null @@ -1,140 +0,0 @@ - -*** src/worker/builder.rs:76:9: replace WorkerBuilder::register -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::register -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -68,18 +68,17 @@ - /// function is called with that job as its argument. - pub fn register(&mut self, kind: K, handler: H) -> &mut Self - where - K: Into, - - H: Fn(Job) -> Fut + Send + Sync + 'static, - Fut: Future> + Send, - { -- self.register_runner(kind, Closure(handler)); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Register a handler for the given job type (`kind`). - /// - /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler - /// object is called with that job as its argument. - pub fn register_runner(&mut self, kind: K, runner: H) -> &mut Self - where - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.81s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.32s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test no_first_job ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 102, 111, 111, 98, 97, 114, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 102, 111, 111, 98, 97, 114, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__builder.rs_line_89_col_9.log b/mutants.out.old/log/src__worker__builder.rs_line_89_col_9.log deleted file mode 100644 index 9aa3ee40..00000000 --- a/mutants.out.old/log/src__worker__builder.rs_line_89_col_9.log +++ /dev/null @@ -1,140 +0,0 @@ - -*** src/worker/builder.rs:89:9: replace WorkerBuilder::register_runner -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::register_runner -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -81,18 +81,17 @@ - /// - /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler - /// object is called with that job as its argument. - pub fn register_runner(&mut self, kind: K, runner: H) -> &mut Self - where - K: Into, - H: JobRunner + 'static, - { -- self.callbacks.insert(kind.into(), Box::new(runner)); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Asynchronously connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - mut self, - stream: S, - pwd: Option, - ) -> Result, E>, Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.57s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... FAILED -test hello ... ok -test dequeue ... FAILED -test hello_pwd ... ok -test well_behaved ... FAILED -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 102, 111, 111, 98, 97, 114, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 102, 111, 111, 98, 97, 114, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__builder.rs_line_99_col_9.log b/mutants.out.old/log/src__worker__builder.rs_line_99_col_9.log deleted file mode 100644 index 0ff125ee..00000000 --- a/mutants.out.old/log/src__worker__builder.rs_line_99_col_9.log +++ /dev/null @@ -1,45 +0,0 @@ - -*** src/worker/builder.rs:99:9: replace WorkerBuilder::connect_with -> Result, E>, Error> with Ok(Default::default()) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::connect_with -> Result, E>, Error> with Ok(Default::default()) -@@ -91,21 +91,17 @@ - } - - /// Asynchronously connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - mut self, - stream: S, - pwd: Option, - ) -> Result, E>, Error> { -- self.opts.password = pwd; -- self.opts.is_worker = true; -- let buffered = BufStream::new(stream); -- let client = Client::new(buffered, self.opts).await?; -- Ok(Worker::new(client, self.workers_count, self.callbacks).await) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - /// Asynchronously connect to a Faktory server. - /// - /// See [`connect`](WorkerBuilder::connect). - pub async fn connect( - mut self, - url: Option<&str>, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Worker, E>: Default` is not satisfied - --> src/worker/builder.rs:99:12 - | -99 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Worker, E>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__health.rs_line_20_col_9.log b/mutants.out.old/log/src__worker__health.rs_line_20_col_9.log deleted file mode 100644 index 9f1091ef..00000000 --- a/mutants.out.old/log/src__worker__health.rs_line_20_col_9.log +++ /dev/null @@ -1,145 +0,0 @@ - -*** src/worker/health.rs:20:9: replace Worker::listen_for_heartbeats -> Result with Ok(true) - -*** mutation diff: ---- src/worker/health.rs -+++ replace Worker::listen_for_heartbeats -> Result with Ok(true) -@@ -12,67 +12,11 @@ - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - pub(crate) async fn listen_for_heartbeats( - &mut self, - statuses: &Vec>, - ) -> Result { -- let mut target = STATUS_RUNNING; -- -- let mut last = time::Instant::now(); -- -- loop { -- tokio_sleep(time::Duration::from_millis(100)).await; -- -- // has a worker failed? -- if target == STATUS_RUNNING -- && statuses -- .iter() -- .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) -- { -- // tell all workers to exit -- // (though chances are they've all failed already) -- for s in statuses { -- s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- } -- break Ok(false); -- } -- -- if last.elapsed().as_secs() < 5 { -- // don't sent a heartbeat yet -- continue; -- } -- -- match self.c.heartbeat().await { -- Ok(hb) => { -- match hb { -- HeartbeatStatus::Ok => {} -- HeartbeatStatus::Quiet => { -- // tell the workers to eventually terminate -- for s in statuses { -- s.store(STATUS_QUIET, atomic::Ordering::SeqCst); -- } -- target = STATUS_QUIET; -- } -- HeartbeatStatus::Terminate => { -- // tell the workers to terminate -- // *and* fail the current job and immediately return -- for s in statuses { -- s.store(STATUS_QUIET, atomic::Ordering::SeqCst); -- } -- break Ok(true); -- } -- } -- } -- Err(e) => { -- // for this to fail, the workers have probably also failed -- for s in statuses { -- s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- } -- break Err(e); -- } -- } -- last = time::Instant::now(); -- } -+ Ok(true) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.46s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.05s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__health.rs_line_20_col_9_001.log b/mutants.out.old/log/src__worker__health.rs_line_20_col_9_001.log deleted file mode 100644 index da72efc9..00000000 --- a/mutants.out.old/log/src__worker__health.rs_line_20_col_9_001.log +++ /dev/null @@ -1,145 +0,0 @@ - -*** src/worker/health.rs:20:9: replace Worker::listen_for_heartbeats -> Result with Ok(false) - -*** mutation diff: ---- src/worker/health.rs -+++ replace Worker::listen_for_heartbeats -> Result with Ok(false) -@@ -12,67 +12,11 @@ - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - pub(crate) async fn listen_for_heartbeats( - &mut self, - statuses: &Vec>, - ) -> Result { -- let mut target = STATUS_RUNNING; -- -- let mut last = time::Instant::now(); -- -- loop { -- tokio_sleep(time::Duration::from_millis(100)).await; -- -- // has a worker failed? -- if target == STATUS_RUNNING -- && statuses -- .iter() -- .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) -- { -- // tell all workers to exit -- // (though chances are they've all failed already) -- for s in statuses { -- s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- } -- break Ok(false); -- } -- -- if last.elapsed().as_secs() < 5 { -- // don't sent a heartbeat yet -- continue; -- } -- -- match self.c.heartbeat().await { -- Ok(hb) => { -- match hb { -- HeartbeatStatus::Ok => {} -- HeartbeatStatus::Quiet => { -- // tell the workers to eventually terminate -- for s in statuses { -- s.store(STATUS_QUIET, atomic::Ordering::SeqCst); -- } -- target = STATUS_QUIET; -- } -- HeartbeatStatus::Terminate => { -- // tell the workers to terminate -- // *and* fail the current job and immediately return -- for s in statuses { -- s.store(STATUS_QUIET, atomic::Ordering::SeqCst); -- } -- break Ok(true); -- } -- } -- } -- Err(e) => { -- // for this to fail, the workers have probably also failed -- for s in statuses { -- s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- } -- break Err(e); -- } -- } -- last = time::Instant::now(); -- } -+ Ok(false) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.69s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__health.rs_line_28_col_23.log b/mutants.out.old/log/src__worker__health.rs_line_28_col_23.log deleted file mode 100644 index c13a11c2..00000000 --- a/mutants.out.old/log/src__worker__health.rs_line_28_col_23.log +++ /dev/null @@ -1,126 +0,0 @@ - -*** src/worker/health.rs:28:23: replace == with != in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace == with != in Worker::listen_for_heartbeats -@@ -20,17 +20,17 @@ - let mut target = STATUS_RUNNING; - - let mut last = time::Instant::now(); - - loop { - tokio_sleep(time::Duration::from_millis(100)).await; - - // has a worker failed? -- if target == STATUS_RUNNING -+ if target != /* ~ changed by cargo-mutants ~ */ STATUS_RUNNING - && statuses - .iter() - .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) - { - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.40s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.08s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 5 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.10s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__health.rs_line_29_col_17.log b/mutants.out.old/log/src__worker__health.rs_line_29_col_17.log deleted file mode 100644 index 3e48384d..00000000 --- a/mutants.out.old/log/src__worker__health.rs_line_29_col_17.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/worker/health.rs:29:17: replace && with || in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace && with || in Worker::listen_for_heartbeats -@@ -21,17 +21,17 @@ - - let mut last = time::Instant::now(); - - loop { - tokio_sleep(time::Duration::from_millis(100)).await; - - // has a worker failed? - if target == STATUS_RUNNING -- && statuses -+ || /* ~ changed by cargo-mutants ~ */ statuses - .iter() - .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) - { - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 2.13s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__health.rs_line_31_col_63.log b/mutants.out.old/log/src__worker__health.rs_line_31_col_63.log deleted file mode 100644 index 4406e70d..00000000 --- a/mutants.out.old/log/src__worker__health.rs_line_31_col_63.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/worker/health.rs:31:63: replace == with != in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace == with != in Worker::listen_for_heartbeats -@@ -23,17 +23,17 @@ - - loop { - tokio_sleep(time::Duration::from_millis(100)).await; - - // has a worker failed? - if target == STATUS_RUNNING - && statuses - .iter() -- .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) -+ .any(|s| s.load(atomic::Ordering::SeqCst) != /* ~ changed by cargo-mutants ~ */ STATUS_TERMINATING) - { - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - break Ok(false); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.30s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__health.rs_line_41_col_41.log b/mutants.out.old/log/src__worker__health.rs_line_41_col_41.log deleted file mode 100644 index de1a44ad..00000000 --- a/mutants.out.old/log/src__worker__health.rs_line_41_col_41.log +++ /dev/null @@ -1,126 +0,0 @@ - -*** src/worker/health.rs:41:41: replace < with > in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace < with > in Worker::listen_for_heartbeats -@@ -33,17 +33,17 @@ - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - break Ok(false); - } - -- if last.elapsed().as_secs() < 5 { -+ if last.elapsed().as_secs() > /* ~ changed by cargo-mutants ~ */ 5 { - // don't sent a heartbeat yet - continue; - } - - match self.c.heartbeat().await { - Ok(hb) => { - match hb { - HeartbeatStatus::Ok => {} - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.41s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 2 - right: 0 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 - - -failures: - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 5 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__health.rs_line_41_col_41_001.log b/mutants.out.old/log/src__worker__health.rs_line_41_col_41_001.log deleted file mode 100644 index f61f1350..00000000 --- a/mutants.out.old/log/src__worker__health.rs_line_41_col_41_001.log +++ /dev/null @@ -1,126 +0,0 @@ - -*** src/worker/health.rs:41:41: replace < with == in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace < with == in Worker::listen_for_heartbeats -@@ -33,17 +33,17 @@ - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - break Ok(false); - } - -- if last.elapsed().as_secs() < 5 { -+ if last.elapsed().as_secs() == /* ~ changed by cargo-mutants ~ */ 5 { - // don't sent a heartbeat yet - continue; - } - - match self.c.heartbeat().await { - Ok(hb) => { - match hb { - HeartbeatStatus::Ok => {} - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.44s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 2 - right: 0 - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 - - -failures: - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 5 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_148_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_148_col_9.log deleted file mode 100644 index 73723672..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_148_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/worker/mod.rs:148:9: replace Worker::reconnect -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::reconnect -> Result<(), Error> with Ok(()) -@@ -140,17 +140,17 @@ - c: Client, - worker_states: Arc, - callbacks: Arc>, - terminated: bool, - } - - impl Worker { - async fn reconnect(&mut self) -> Result<(), Error> { -- self.c.reconnect().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Worker { - async fn new(c: Client, workers_count: usize, callbacks: CallbacksRegistry) -> Self { - Worker { - c, - callbacks: Arc::new(callbacks), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.49s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test community::multi ... ok -test community::hello_client ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::roundtrip ... ok -test community::queue ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__mod.rs_line_170_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_170_col_9.log deleted file mode 100644 index 2e8442a6..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_170_col_9.log +++ /dev/null @@ -1,129 +0,0 @@ - -*** src/worker/mod.rs:170:9: replace Worker::run_job -> Result<(), Failed> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run_job -> Result<(), Failed> with Ok(()) -@@ -162,21 +162,17 @@ - - enum Failed { - Application(E), - BadJobType(String), - } - - impl Worker { - async fn run_job(&mut self, job: Job) -> Result<(), Failed> { -- let handler = self -- .callbacks -- .get(job.kind()) -- .ok_or(Failed::BadJobType(job.kind().to_string()))?; -- handler.run(job).await.map_err(Failed::Application) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - async fn report_failure_to_server(&mut self, f: &Fail) -> Result<(), Error> { - self.c.issue(f).await?.read_ok().await - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { - self.c.issue(&Ack::new(jid)).await?.read_ok().await - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.79s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test no_first_job ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_178_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_178_col_9.log deleted file mode 100644 index cde241b7..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_178_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/worker/mod.rs:178:9: replace Worker::report_failure_to_server -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::report_failure_to_server -> Result<(), Error> with Ok(()) -@@ -170,17 +170,17 @@ - let handler = self - .callbacks - .get(job.kind()) - .ok_or(Failed::BadJobType(job.kind().to_string()))?; - handler.run(job).await.map_err(Failed::Application) - } - - async fn report_failure_to_server(&mut self, f: &Fail) -> Result<(), Error> { -- self.c.issue(f).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { - self.c.issue(&Ack::new(jid)).await?.read_ok().await - } - - async fn report_on_all_workers(&mut self) -> Result<(), Error> { - let worker_states = Arc::get_mut(&mut self.worker_states) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.79s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.28s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test community::queue ... ok -test community::hello_client ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::enqueue_job ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__mod.rs_line_182_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_182_col_9.log deleted file mode 100644 index f5ff824f..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_182_col_9.log +++ /dev/null @@ -1,140 +0,0 @@ - -*** src/worker/mod.rs:182:9: replace Worker::report_success_to_server -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::report_success_to_server -> Result<(), Error> with Ok(()) -@@ -174,17 +174,17 @@ - handler.run(job).await.map_err(Failed::Application) - } - - async fn report_failure_to_server(&mut self, f: &Fail) -> Result<(), Error> { - self.c.issue(f).await?.read_ok().await - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { -- self.c.issue(&Ack::new(jid)).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - async fn report_on_all_workers(&mut self) -> Result<(), Error> { - let worker_states = Arc::get_mut(&mut self.worker_states) - .expect("all workers are scoped to &mut of the user-code-visible Worker"); - - // retry delivering notification about our last job result. - // we know there's no leftover thread at this point, so there's no race on the option. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.49s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "ls\":[\"rust\"],\"v\":2}\r\nFETCH default\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "ls\":[\"rust\"],\"v\":2}\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "ls\":[\"rust\"],\"v\":2}\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_186_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_186_col_9.log deleted file mode 100644 index be4c4d96..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_186_col_9.log +++ /dev/null @@ -1,202 +0,0 @@ - -*** src/worker/mod.rs:186:9: replace Worker::report_on_all_workers -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::report_on_all_workers -> Result<(), Error> with Ok(()) -@@ -178,51 +178,17 @@ - self.c.issue(f).await?.read_ok().await - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { - self.c.issue(&Ack::new(jid)).await?.read_ok().await - } - - async fn report_on_all_workers(&mut self) -> Result<(), Error> { -- let worker_states = Arc::get_mut(&mut self.worker_states) -- .expect("all workers are scoped to &mut of the user-code-visible Worker"); -- -- // retry delivering notification about our last job result. -- // we know there's no leftover thread at this point, so there's no race on the option. -- for wstate in worker_states.iter_mut() { -- let wstate = wstate.get_mut().unwrap(); -- if let Some(res) = wstate.take_last_result() { -- let r = match res { -- Ok(ref jid) => self.c.issue(&Ack::new(jid.clone())).await, -- Err(ref fail) => self.c.issue(fail).await, -- }; -- -- let r = match r { -- Ok(r) => r, -- Err(e) => { -- wstate.save_last_result(res); -- return Err(e); -- } -- }; -- -- if let Err(e) = r.read_ok().await { -- // it could be that the server did previously get our ACK/FAIL, and that it was -- // the resulting OK that failed. in that case, we would get an error response -- // when re-sending the job response. this should not count as critical. other -- // errors, however, should! -- if let Error::IO(_) = e { -- wstate.save_last_result(res); -- return Err(e); -- } -- } -- } -- } -- -- Ok(()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - // FAIL currently running jobs even though they're still running. - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { - let mut running = 0; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.76s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.28s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_client ... ok -test community::multi ... ok -test community::enqueue_job ... ok -test community::hello_worker ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::roundtrip ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__mod.rs_line_228_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_228_col_9.log deleted file mode 100644 index c02e6ed9..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_228_col_9.log +++ /dev/null @@ -1,108 +0,0 @@ - -*** src/worker/mod.rs:228:9: replace Worker::force_fail_all_workers -> usize with 0 - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::force_fail_all_workers -> usize with 0 -@@ -220,30 +220,17 @@ - Ok(()) - } - - // FAIL currently running jobs even though they're still running. - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { -- let mut running = 0; -- for wstate in self.worker_states.iter() { -- let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); -- if let Some(jid) = may_be_jid { -- running += 1; -- let f = Fail::new(jid, "unknown", "terminated"); -- let _ = match self.c.issue(&f).await { -- Ok(r) => r.read_ok().await, -- Err(_) => continue, -- } -- .is_ok(); -- } -- } -- running -+ 0 /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch and run a single job, and then return. - pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result - where - Q: AsRef + Sync, - { - let job = match self.c.fetch(queues).await? { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.52s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__mod.rs_line_228_col_9_001.log b/mutants.out.old/log/src__worker__mod.rs_line_228_col_9_001.log deleted file mode 100644 index 12f2da16..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_228_col_9_001.log +++ /dev/null @@ -1,146 +0,0 @@ - -*** src/worker/mod.rs:228:9: replace Worker::force_fail_all_workers -> usize with 1 - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::force_fail_all_workers -> usize with 1 -@@ -220,30 +220,17 @@ - Ok(()) - } - - // FAIL currently running jobs even though they're still running. - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { -- let mut running = 0; -- for wstate in self.worker_states.iter() { -- let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); -- if let Some(jid) = may_be_jid { -- running += 1; -- let f = Fail::new(jid, "unknown", "terminated"); -- let _ = match self.c.issue(&f).await { -- Ok(r) => r.read_ok().await, -- Err(_) => continue, -- } -- .is_ok(); -- } -- } -- running -+ 1 /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch and run a single job, and then return. - pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result - where - Q: AsRef + Sync, - { - let job = match self.c.fetch(queues).await? { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.58s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:5: -assertion `left == right` failed - left: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 69, 78, 68, 13, 10] - right: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 70, 65, 73, 76, 32] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 1 - right: 0 - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_232_col_25.log b/mutants.out.old/log/src__worker__mod.rs_line_232_col_25.log deleted file mode 100644 index 8d4686dc..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_232_col_25.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/worker/mod.rs:232:25: replace += with *= in Worker::force_fail_all_workers - -*** mutation diff: ---- src/worker/mod.rs -+++ replace += with *= in Worker::force_fail_all_workers -@@ -224,17 +224,17 @@ - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { - let mut running = 0; - for wstate in self.worker_states.iter() { - let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); - if let Some(jid) = may_be_jid { -- running += 1; -+ running *= /* ~ changed by cargo-mutants ~ */ 1; - let f = Fail::new(jid, "unknown", "terminated"); - let _ = match self.c.issue(&f).await { - Ok(r) => r.read_ok().await, - Err(_) => continue, - } - .is_ok(); - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.66s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.12s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__mod.rs_line_232_col_25_001.log b/mutants.out.old/log/src__worker__mod.rs_line_232_col_25_001.log deleted file mode 100644 index 19869560..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_232_col_25_001.log +++ /dev/null @@ -1,112 +0,0 @@ - -*** src/worker/mod.rs:232:25: replace += with -= in Worker::force_fail_all_workers - -*** mutation diff: ---- src/worker/mod.rs -+++ replace += with -= in Worker::force_fail_all_workers -@@ -224,17 +224,17 @@ - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { - let mut running = 0; - for wstate in self.worker_states.iter() { - let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); - if let Some(jid) = may_be_jid { -- running += 1; -+ running -= /* ~ changed by cargo-mutants ~ */ 1; - let f = Fail::new(jid, "unknown", "terminated"); - let _ = match self.c.issue(&f).await { - Ok(r) => r.read_ok().await, - Err(_) => continue, - } - .is_ok(); - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.41s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -failures: - ----- terminate stdout ---- -thread 'tokio-runtime-worker' panicked at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/src/worker/mod.rs:232:17: -attempt to subtract with overflow -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -thread 'terminate' panicked at tests/consumer.rs:394:25: -called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(249), ...) - - -failures: - terminate - -test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_249_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_249_col_9.log deleted file mode 100644 index d581e416..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_249_col_9.log +++ /dev/null @@ -1,171 +0,0 @@ - -*** src/worker/mod.rs:249:9: replace Worker::run_one -> Result with Ok(true) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run_one -> Result with Ok(true) -@@ -241,43 +241,17 @@ - running - } - - /// Fetch and run a single job, and then return. - pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result - where - Q: AsRef + Sync, - { -- let job = match self.c.fetch(queues).await? { -- None => return Ok(false), -- Some(j) => j, -- }; -- -- let jid = job.jid.clone(); -- -- self.worker_states.register_running(worker, jid.clone()); -- -- match self.run_job(job).await { -- Ok(_) => { -- self.worker_states.register_success(worker, jid.clone()); -- self.report_success_to_server(jid).await?; -- } -- Err(e) => { -- let fail = match e { -- Failed::BadJobType(jt) => Fail::generic(jid, format!("No handler for {}", jt)), -- Failed::Application(e) => Fail::generic_with_backtrace(jid, e), -- }; -- self.worker_states.register_failure(worker, &fail); -- self.report_failure_to_server(&fail).await?; -- } -- } -- -- self.worker_states.reset(worker); -- -- Ok(true) -+ Ok(true) /* ~ changed by cargo-mutants ~ */ - } - } - - impl< - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.66s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.52s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:125:25: -assertion failed: !did_work - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "d\":169838,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "d\":169838,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "\"wid\":\"wid\",\"pid\":169838,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_249_col_9_001.log b/mutants.out.old/log/src__worker__mod.rs_line_249_col_9_001.log deleted file mode 100644 index 5c28143f..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_249_col_9_001.log +++ /dev/null @@ -1,171 +0,0 @@ - -*** src/worker/mod.rs:249:9: replace Worker::run_one -> Result with Ok(false) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run_one -> Result with Ok(false) -@@ -241,43 +241,17 @@ - running - } - - /// Fetch and run a single job, and then return. - pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result - where - Q: AsRef + Sync, - { -- let job = match self.c.fetch(queues).await? { -- None => return Ok(false), -- Some(j) => j, -- }; -- -- let jid = job.jid.clone(); -- -- self.worker_states.register_running(worker, jid.clone()); -- -- match self.run_job(job).await { -- Ok(_) => { -- self.worker_states.register_success(worker, jid.clone()); -- self.report_success_to_server(jid).await?; -- } -- Err(e) => { -- let fail = match e { -- Failed::BadJobType(jt) => Fail::generic(jid, format!("No handler for {}", jt)), -- Failed::Application(e) => Fail::generic_with_backtrace(jid, e), -- }; -- self.worker_states.register_failure(worker, &fail); -- self.report_failure_to_server(&fail).await?; -- } -- } -- -- self.worker_states.reset(worker); -- -- Ok(true) -+ Ok(false) /* ~ changed by cargo-mutants ~ */ - } - } - - impl< - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 2.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.08s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.41s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "d\":301837,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "d\":301837,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "\"wid\":\"wid\",\"pid\":301837,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_285_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_285_col_9.log deleted file mode 100644 index 62bb5cfd..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_285_col_9.log +++ /dev/null @@ -1,46 +0,0 @@ - -*** src/worker/mod.rs:285:9: replace Worker::for_worker -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::for_worker -> Result with Ok(Default::default()) -@@ -277,22 +277,17 @@ - } - - impl< - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - async fn for_worker(&mut self) -> Result { -- Ok(Worker { -- c: self.c.connect_again().await?, -- callbacks: Arc::clone(&self.callbacks), -- worker_states: Arc::clone(&self.worker_states), -- terminated: self.terminated, -- }) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - async fn spawn_worker( - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0277]: the trait bound `Worker: Default` is not satisfied - --> src/worker/mod.rs:285:12 - | -285 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Worker` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_302_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_302_col_9.log deleted file mode 100644 index e582adaa..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_302_col_9.log +++ /dev/null @@ -1,62 +0,0 @@ - -*** src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from(Ok(()))) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from(Ok(()))) -@@ -294,28 +294,17 @@ - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { -- let mut w = self.for_worker().await?; -- let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); -- Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -- if let Err(e) = w.run_one(worker, &queues[..]).await { -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- return Err(e); -- } -- } -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- Ok(()) -- })) -+ Ok(JoinHandle::from(Ok(()))) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). - /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0308]: mismatched types - --> src/worker/mod.rs:302:29 - | -302 | Ok(JoinHandle::from(Ok(()))) /* ~ changed by cargo-mutants ~ */ - | ---------------- ^^^^^^ expected `JoinHandle>`, found `Result<(), _>` - | | - | arguments to this function are incorrect - | - = note: expected struct `tokio::task::JoinHandle>` - found enum `Result<_, _>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_001.log b/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_001.log deleted file mode 100644 index 3175dda7..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_001.log +++ /dev/null @@ -1,74 +0,0 @@ - -*** src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new(Ok(()))) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new(Ok(()))) -@@ -294,28 +294,17 @@ - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { -- let mut w = self.for_worker().await?; -- let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); -- Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -- if let Err(e) = w.run_one(worker, &queues[..]).await { -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- return Err(e); -- } -- } -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- Ok(()) -- })) -+ Ok(JoinHandle::new(Ok(()))) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). - /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0624]: associated function `new` is private - --> src/worker/mod.rs:302:24 - | -302 | Ok(JoinHandle::new(Ok(()))) /* ~ changed by cargo-mutants ~ */ - | ^^^ private associated function - | - ::: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:5 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ------------------------------------------------ private associated function defined here - -error[E0308]: mismatched types - --> src/worker/mod.rs:302:28 - | -302 | Ok(JoinHandle::new(Ok(()))) /* ~ changed by cargo-mutants ~ */ - | --------------- ^^^^^^ expected `RawTask`, found `Result<(), _>` - | | - | arguments to this function are incorrect - | - = note: expected struct `runtime::task::raw::RawTask` - found enum `Result<(), _>` -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:19 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ^^^ - -Some errors have detailed explanations: E0308, E0624. -For more information about an error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_002.log b/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_002.log deleted file mode 100644 index 69ed888c..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_002.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from_iter([Ok(())])) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from_iter([Ok(())])) -@@ -294,28 +294,17 @@ - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { -- let mut w = self.for_worker().await?; -- let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); -- Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -- if let Err(e) = w.run_one(worker, &queues[..]).await { -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- return Err(e); -- } -- } -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- Ok(()) -- })) -+ Ok(JoinHandle::from_iter([Ok(())])) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). - /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `tokio::task::JoinHandle` in the current scope - --> src/worker/mod.rs:302:24 - | -302 | Ok(JoinHandle::from_iter([Ok(())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `JoinHandle<_>` - | -note: if you're trying to build a new `tokio::task::JoinHandle<_>`, consider using `tokio::task::JoinHandle::::new` which returns `tokio::task::JoinHandle` - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:5 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_003.log b/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_003.log deleted file mode 100644 index 0fa906fc..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_302_col_9_003.log +++ /dev/null @@ -1,74 +0,0 @@ - -*** src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new()) -@@ -294,28 +294,17 @@ - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { -- let mut w = self.for_worker().await?; -- let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); -- Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -- if let Err(e) = w.run_one(worker, &queues[..]).await { -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- return Err(e); -- } -- } -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- Ok(()) -- })) -+ Ok(JoinHandle::new()) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). - /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0624]: associated function `new` is private - --> src/worker/mod.rs:302:24 - | -302 | Ok(JoinHandle::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^ private associated function - | - ::: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:5 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ------------------------------------------------ private associated function defined here - -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/worker/mod.rs:302:12 - | -302 | Ok(JoinHandle::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^-- an argument of type `runtime::task::raw::RawTask` is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:19 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ^^^ -help: provide the argument - | -302 | Ok(JoinHandle::new(/* runtime::task::raw::RawTask */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0624. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_305_col_57.log b/mutants.out.old/log/src__worker__mod.rs_line_305_col_57.log deleted file mode 100644 index 180885b2..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_305_col_57.log +++ /dev/null @@ -1,133 +0,0 @@ - -*** src/worker/mod.rs:305:57: replace == with != in Worker::spawn_worker - -*** mutation diff: ---- src/worker/mod.rs -+++ replace == with != in Worker::spawn_worker -@@ -297,17 +297,17 @@ - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { - let mut w = self.for_worker().await?; - let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); - Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -+ while status.load(atomic::Ordering::SeqCst) != /* ~ changed by cargo-mutants ~ */ STATUS_RUNNING { - if let Err(e) = w.run_one(worker, &queues[..]).await { - status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - return Err(e); - } - } - status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - Ok(()) - })) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.58s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.33s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test terminate ... FAILED - -failures: - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "END\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "END\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "END\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_328_col_9.log b/mutants.out.old/log/src__worker__mod.rs_line_328_col_9.log deleted file mode 100644 index 40229538..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_328_col_9.log +++ /dev/null @@ -1,273 +0,0 @@ - -*** src/worker/mod.rs:328:9: replace Worker::run -> Result with Ok(1) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run -> Result with Ok(1) -@@ -320,62 +320,17 @@ - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), - /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - pub async fn run(&mut self, queues: &[Q]) -> Result - where - Q: AsRef, - { -- assert!(!self.terminated, "do not re-run a terminated worker"); -- self.report_on_all_workers().await?; -- -- let workers_count = self.worker_states.len(); -- -- // keep track of the current status of each worker -- let statuses: Vec<_> = (0..workers_count) -- .map(|_| Arc::new(atomic::AtomicUsize::new(STATUS_RUNNING))) -- .collect(); -- -- let mut workers = Vec::with_capacity(workers_count); -- for (worker, status) in statuses.iter().enumerate().take(workers_count) { -- let handle = self -- .spawn_worker(Arc::clone(status), worker, queues) -- .await?; -- workers.push(handle) -- } -- -- let exit = self.listen_for_heartbeats(&statuses).await; -- -- // there are a couple of cases here: -- // -- // - we got TERMINATE, so we should just return, even if a worker is still running -- // - we got TERMINATE and all workers has exited -- // - we got an error from heartbeat() -- // -- self.terminated = exit.is_ok(); -- -- if let Ok(true) = exit { -- let running = self.force_fail_all_workers().await; -- if running != 0 { -- return Ok(running); -- } -- } -- -- // we want to expose worker errors, or otherwise the heartbeat error -- let mut results = Vec::with_capacity(workers_count); -- for w in workers { -- results.push(w.await.expect("joined ok")); -- } -- let result = results.into_iter().collect::, _>>(); -- -- match exit { -- Ok(_) => result.map(|_| 0), -- Err(e) => result.and(Err(e)), -- } -+ Ok(1) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker until the server tells us to exit or a connection cannot be re-established. - /// - /// This function never returns. When the worker decides to exit, the process is terminated. - pub async fn run_to_completion(mut self, queues: &[Q]) -> ! - where - Q: AsRef, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.21s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 2 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -thread 'no_first_job' panicked at tests/consumer.rs:259:25: -called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(256), ...) -thread 'no_first_job' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x6263fb1660d6 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x6263fb1660d6 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x6263fb1660d6 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x6263fb1660d6 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x6263fb18f7b0 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x6263fb18f7b0 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x6263fb16372f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x6263fb165eb4 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x6263fb165eb4 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x6263fb167c27 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x6263fb16790d - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x6263fb006277 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x6263fb006277 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x6263fb168246 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x6263fb168246 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x6263fb167f92 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x6263fb1665d6 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x6263fb167ce4 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x6263faf2dca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x6263faf2e2a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x6263faf52064 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x6263faf52064 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/mock/mod.rs:136:17 - 22: 0x6263faf4e783 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x6263fafb177f - consumer::no_first_job::{{closure}}::h1ab0ab7aaf0b0ced - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:280:1 - 24: 0x6263faf2f233 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x6263faf92444 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x6263faf91940 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x6263faf91940 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x6263faf91940 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x6263fafb8fa4 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x6263faf44238 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x6263faf7dcb4 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x6263faf44208 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x6263faf99987 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x6263faf9f328 - consumer::no_first_job::h39919131e5a9b512 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:276:5 - 35: 0x6263fafb1597 - consumer::no_first_job::{{closure}}::h0980b49e39ced088 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:217:24 - 36: 0x6263faf492a6 - core::ops::function::FnOnce::call_once::hb93ba4dae02c3f85 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x6263fb00be3f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x6263fb00be3f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x6263fb00ac91 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x6263fb00ac91 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x6263fb00ac91 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x6263fb00ac91 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x6263fb00ac91 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x6263fb00ac91 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x6263fb00ac91 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x6263fafd2076 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x6263fafd2076 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x6263fafd70b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x6263fafd70b7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x6263fafd70b7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x6263fafd70b7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x6263fafd70b7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x6263fafd70b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x6263fafd70b7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x6263fb16c765 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x6263fb16c765 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x6263fb16c765 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x75b5b9e94ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x75b5b9f26850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'no_first_job' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_328_col_9_001.log b/mutants.out.old/log/src__worker__mod.rs_line_328_col_9_001.log deleted file mode 100644 index 13473a75..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_328_col_9_001.log +++ /dev/null @@ -1,272 +0,0 @@ - -*** src/worker/mod.rs:328:9: replace Worker::run -> Result with Ok(0) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run -> Result with Ok(0) -@@ -320,62 +320,17 @@ - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), - /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - pub async fn run(&mut self, queues: &[Q]) -> Result - where - Q: AsRef, - { -- assert!(!self.terminated, "do not re-run a terminated worker"); -- self.report_on_all_workers().await?; -- -- let workers_count = self.worker_states.len(); -- -- // keep track of the current status of each worker -- let statuses: Vec<_> = (0..workers_count) -- .map(|_| Arc::new(atomic::AtomicUsize::new(STATUS_RUNNING))) -- .collect(); -- -- let mut workers = Vec::with_capacity(workers_count); -- for (worker, status) in statuses.iter().enumerate().take(workers_count) { -- let handle = self -- .spawn_worker(Arc::clone(status), worker, queues) -- .await?; -- workers.push(handle) -- } -- -- let exit = self.listen_for_heartbeats(&statuses).await; -- -- // there are a couple of cases here: -- // -- // - we got TERMINATE, so we should just return, even if a worker is still running -- // - we got TERMINATE and all workers has exited -- // - we got an error from heartbeat() -- // -- self.terminated = exit.is_ok(); -- -- if let Ok(true) = exit { -- let running = self.force_fail_all_workers().await; -- if running != 0 { -- return Ok(running); -- } -- } -- -- // we want to expose worker errors, or otherwise the heartbeat error -- let mut results = Vec::with_capacity(workers_count); -- for w in workers { -- results.push(w.await.expect("joined ok")); -- } -- let result = results.into_iter().collect::, _>>(); -- -- match exit { -- Ok(_) => result.map(|_| 0), -- Err(e) => result.and(Err(e)), -- } -+ Ok(0) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker until the server tells us to exit or a connection cannot be re-established. - /// - /// This function never returns. When the worker decides to exit, the process is terminated. - pub async fn run_to_completion(mut self, queues: &[Q]) -> ! - where - Q: AsRef, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.13s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 2 -thread 'terminate' panicked at tests/consumer.rs:394:25: -called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(250), ...) -thread 'terminate' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x60ae9d1410d6 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x60ae9d1410d6 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x60ae9d1410d6 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x60ae9d1410d6 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x60ae9d16a7b0 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x60ae9d16a7b0 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x60ae9d13e72f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x60ae9d140eb4 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x60ae9d140eb4 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x60ae9d142c27 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x60ae9d14290d - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x60ae9cfe1277 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x60ae9cfe1277 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x60ae9d143246 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x60ae9d143246 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x60ae9d142f92 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x60ae9d1415d6 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x60ae9d142ce4 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x60ae9cf08ca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x60ae9cf092a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x60ae9cf2d064 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x60ae9cf2d064 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/mock/mod.rs:136:17 - 22: 0x60ae9cf29783 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x60ae9cf8f813 - consumer::terminate::{{closure}}::h98d9162e07f14c60 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:424:1 - 24: 0x60ae9cf0a233 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x60ae9cf6d444 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x60ae9cf6c940 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x60ae9cf6c940 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x60ae9cf6c940 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x60ae9cf93fa4 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x60ae9cf1f238 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x60ae9cf58cb4 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x60ae9cf1f208 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x60ae9cf74987 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x60ae9cf7a6e8 - consumer::terminate::hfd1de1d271d1e37e - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:420:5 - 35: 0x60ae9cf8f637 - consumer::terminate::{{closure}}::h1143019e1fae7520 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:359:21 - 36: 0x60ae9cf236d6 - core::ops::function::FnOnce::call_once::h2fc6066bdd791778 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x60ae9cfe6e3f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x60ae9cfe6e3f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x60ae9cfe5c91 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x60ae9cfe5c91 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x60ae9cfe5c91 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x60ae9cfe5c91 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x60ae9cfe5c91 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x60ae9cfe5c91 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x60ae9cfe5c91 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x60ae9cfad076 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x60ae9cfad076 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x60ae9cfb20b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x60ae9cfb20b7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x60ae9cfb20b7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x60ae9cfb20b7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x60ae9cfb20b7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x60ae9cfb20b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x60ae9cfb20b7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x60ae9d147765 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x60ae9d147765 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x60ae9d147765 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x7fe8d1694ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x7fe8d1726850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'terminate' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__mod.rs_line_358_col_24.log b/mutants.out.old/log/src__worker__mod.rs_line_358_col_24.log deleted file mode 100644 index 7822664b..00000000 --- a/mutants.out.old/log/src__worker__mod.rs_line_358_col_24.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/worker/mod.rs:358:24: replace != with == in Worker::run - -*** mutation diff: ---- src/worker/mod.rs -+++ replace != with == in Worker::run -@@ -350,17 +350,17 @@ - // - we got TERMINATE, so we should just return, even if a worker is still running - // - we got TERMINATE and all workers has exited - // - we got an error from heartbeat() - // - self.terminated = exit.is_ok(); - - if let Ok(true) = exit { - let running = self.force_fail_all_workers().await; -- if running != 0 { -+ if running == /* ~ changed by cargo-mutants ~ */ 0 { - return Ok(running); - } - } - - // we want to expose worker errors, or otherwise the heartbeat error - let mut results = Vec::with_capacity(workers_count); - for w in workers { - results.push(w.await.expect("joined ok")); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.46s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.06s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.30s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__runner.rs_line_63_col_9.log b/mutants.out.old/log/src__worker__runner.rs_line_63_col_9.log deleted file mode 100644 index cc62425f..00000000 --- a/mutants.out.old/log/src__worker__runner.rs_line_63_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/worker/runner.rs:63:9: replace >::run -> Result<(), E> with Ok(()) - -*** mutation diff: ---- src/worker/runner.rs -+++ replace >::run -> Result<(), E> with Ok(()) -@@ -55,17 +55,17 @@ - #[async_trait::async_trait] - impl JobRunner for Box - where - F: Send + Sync + Fn(Job) -> Fut, - Fut: Future> + Send, - { - type Error = E; - async fn run(&self, job: Job) -> Result<(), E> { -- self(job).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // Additional Blanket Implementations - #[async_trait::async_trait] - impl<'a, E, F, Fut> JobRunner for &'a F - where - F: Send + Sync + Fn(Job) -> Fut, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.22s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test community::queue ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::multi ... ok -test community::enqueue_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__runner.rs_line_76_col_9.log b/mutants.out.old/log/src__worker__runner.rs_line_76_col_9.log deleted file mode 100644 index 233fb49c..00000000 --- a/mutants.out.old/log/src__worker__runner.rs_line_76_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/worker/runner.rs:76:9: replace ::run -> Result<(), E> with Ok(()) - -*** mutation diff: ---- src/worker/runner.rs -+++ replace ::run -> Result<(), E> with Ok(()) -@@ -68,17 +68,17 @@ - #[async_trait::async_trait] - impl<'a, E, F, Fut> JobRunner for &'a F - where - F: Send + Sync + Fn(Job) -> Fut, - Fut: Future> + Send, - { - type Error = E; - async fn run(&self, job: Job) -> Result<(), E> { -- self(job).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - #[repr(transparent)] - pub(crate) struct Closure(pub F); - - #[async_trait::async_trait] - impl JobRunner for Closure - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.55s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.76s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test community::hello_client ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::enqueue_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::queue ... ok -test community::fail ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__runner.rs_line_91_col_9.log b/mutants.out.old/log/src__worker__runner.rs_line_91_col_9.log deleted file mode 100644 index 00f45c5f..00000000 --- a/mutants.out.old/log/src__worker__runner.rs_line_91_col_9.log +++ /dev/null @@ -1,121 +0,0 @@ - -*** src/worker/runner.rs:91:9: replace >::run -> Result<(), E> with Ok(()) - -*** mutation diff: ---- src/worker/runner.rs -+++ replace >::run -> Result<(), E> with Ok(()) -@@ -83,13 +83,13 @@ - #[async_trait::async_trait] - impl JobRunner for Closure - where - F: Send + Sync + Fn(Job) -> Fut, - Fut: Future> + Send, - { - type Error = E; - async fn run(&self, job: Job) -> Result<(), E> { -- (self.0)(job).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - pub(crate) type BoxedJobRunner = Box>; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.38s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.33s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test well_behaved ... FAILED -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__state.rs_line_15_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_15_col_9.log deleted file mode 100644 index bead499d..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_15_col_9.log +++ /dev/null @@ -1,228 +0,0 @@ - -*** src/worker/state.rs:15:9: replace WorkerState::take_last_result -> Option> with Some(Ok(Default::default())) - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::take_last_result -> Option> with Some(Ok(Default::default())) -@@ -7,17 +7,17 @@ - #[derive(Default)] - pub(crate) struct WorkerState { - last_job_result: Option>, - running_job: Option, - } - - impl WorkerState { - pub(crate) fn take_last_result(&mut self) -> Option> { -- self.last_job_result.take() -+ Some(Ok(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { - self.running_job.take() - } - - pub(crate) fn save_last_result(&mut self, res: Result) { - self.last_job_result = Some(res) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.49s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 3 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -thread 'well_behaved_many' panicked at tests/consumer.rs:334:25: -called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(258), ...) -thread 'well_behaved_many' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x5febbb6c66f6 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x5febbb6c66f6 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x5febbb6c66f6 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x5febbb6c66f6 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x5febbb6efdd0 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x5febbb6efdd0 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x5febbb6c3d4f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x5febbb6c64d4 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x5febbb6c64d4 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x5febbb6c8247 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x5febbb6c7f2d - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x5febbb55ff67 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x5febbb55ff67 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x5febbb6c8866 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x5febbb6c8866 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x5febbb6c85b2 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x5febbb6c6bf6 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x5febbb6c8304 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x5febbb464ca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x5febbb4652a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x5febbb48e7b4 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x5febbb48e7b4 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/mock/mod.rs:136:17 - 22: 0x5febbb489f73 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x5febbb50432f - consumer::well_behaved_many::{{closure}}::h2d3fe6f7863cb608 - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:356:1 - 24: 0x5febbb466793 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x5febbb4dd134 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x5febbb4dc630 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x5febbb4dc630 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x5febbb4dc630 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x5febbb50d3f4 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x5febbb47cd88 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x5febbb4bf914 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x5febbb47cd58 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x5febbb4e6247 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x5febbb4ed098 - consumer::well_behaved_many::h1d439a0e79b7622f - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:345:5 - 35: 0x5febbb504147 - consumer::well_behaved_many::{{closure}}::h9fd75a9e7c3cb1df - at /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/tests/consumer.rs:283:29 - 36: 0x5febbb482bc6 - core::ops::function::FnOnce::call_once::hfd4ec7262c8f776d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x5febbb565b2f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x5febbb565b2f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x5febbb564981 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x5febbb564981 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x5febbb564981 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x5febbb564981 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x5febbb564981 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x5febbb564981 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x5febbb564981 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x5febbb52bd66 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x5febbb52bd66 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x5febbb530da7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x5febbb530da7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x5febbb530da7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x5febbb530da7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x5febbb530da7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x5febbb530da7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x5febbb530da7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x5febbb6ccd85 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x5febbb6ccd85 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x5febbb6ccd85 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x76196a294ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x76196a326850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'well_behaved_many' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__state.rs_line_15_col_9_001.log b/mutants.out.old/log/src__worker__state.rs_line_15_col_9_001.log deleted file mode 100644 index 3bba2253..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_15_col_9_001.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/worker/state.rs:15:9: replace WorkerState::take_last_result -> Option> with None - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::take_last_result -> Option> with None -@@ -7,17 +7,17 @@ - #[derive(Default)] - pub(crate) struct WorkerState { - last_job_result: Option>, - running_job: Option, - } - - impl WorkerState { - pub(crate) fn take_last_result(&mut self) -> Option> { -- self.last_job_result.take() -+ None /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { - self.running_job.take() - } - - pub(crate) fn save_last_result(&mut self, res: Result) { - self.last_job_result = Some(res) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.69s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.30s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::fail ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__state.rs_line_19_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_19_col_9.log deleted file mode 100644 index 287c1ae3..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_19_col_9.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/worker/state.rs:19:9: replace WorkerState::take_cuurently_running -> Option with None - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::take_cuurently_running -> Option with None -@@ -11,17 +11,17 @@ - } - - impl WorkerState { - pub(crate) fn take_last_result(&mut self) -> Option> { - self.last_job_result.take() - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { -- self.running_job.take() -+ None /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn save_last_result(&mut self, res: Result) { - self.last_job_result = Some(res) - } - } - - pub(crate) struct WorkerStatesRegistry(Vec>); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.62s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.04s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.96s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__state.rs_line_19_col_9_001.log b/mutants.out.old/log/src__worker__state.rs_line_19_col_9_001.log deleted file mode 100644 index 78491912..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_19_col_9_001.log +++ /dev/null @@ -1,134 +0,0 @@ - -*** src/worker/state.rs:19:9: replace WorkerState::take_cuurently_running -> Option with Some(Default::default()) - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::take_cuurently_running -> Option with Some(Default::default()) -@@ -11,17 +11,17 @@ - } - - impl WorkerState { - pub(crate) fn take_last_result(&mut self) -> Option> { - self.last_job_result.take() - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { -- self.running_job.take() -+ Some(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn save_last_result(&mut self, res: Result) { - self.last_job_result = Some(res) - } - } - - pub(crate) struct WorkerStatesRegistry(Vec>); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.85s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- terminate stdout ---- -{"jid":"","errtype":"unknown","message":"terminated"} -thread 'terminate' panicked at tests/consumer.rs:408:5: -assertion `left == right` failed - left: Some("") - right: Some("forever") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 2 - right: 0 - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__state.rs_line_23_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_23_col_9.log deleted file mode 100644 index 6501537f..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_23_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/worker/state.rs:23:9: replace WorkerState::save_last_result with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::save_last_result with () -@@ -15,17 +15,17 @@ - self.last_job_result.take() - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { - self.running_job.take() - } - - pub(crate) fn save_last_result(&mut self, res: Result) { -- self.last_job_result = Some(res) -+ () /* ~ changed by cargo-mutants ~ */ - } - } - - pub(crate) struct WorkerStatesRegistry(Vec>); - - impl Deref for WorkerStatesRegistry { - type Target = Vec>; - fn deref(&self) -> &Self::Target { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.68s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.34s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test community::fail ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_expiring_job ... ok -test community::queue ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_worker ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__state.rs_line_32_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_32_col_9.log deleted file mode 100644 index e390dc25..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_32_col_9.log +++ /dev/null @@ -1,44 +0,0 @@ - -*** src/worker/state.rs:32:9: replace ::deref -> &Self::Target with &Default::default() - -*** mutation diff: ---- src/worker/state.rs -+++ replace ::deref -> &Self::Target with &Default::default() -@@ -24,17 +24,17 @@ - } - } - - pub(crate) struct WorkerStatesRegistry(Vec>); - - impl Deref for WorkerStatesRegistry { - type Target = Vec>; - fn deref(&self) -> &Self::Target { -- &self.0 -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl DerefMut for WorkerStatesRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) -error[E0515]: cannot return reference to temporary value - --> src/worker/state.rs:32:9 - | -32 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^------------------ - | || - | |temporary value created here - | returns a reference to data owned by the current function - -For more information about this error, try `rustc --explain E0515`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out.old/log/src__worker__state.rs_line_38_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_38_col_9.log deleted file mode 100644 index a79a90a5..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_38_col_9.log +++ /dev/null @@ -1,168 +0,0 @@ - -*** src/worker/state.rs:38:9: replace ::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/state.rs -+++ replace ::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) -@@ -30,17 +30,17 @@ - type Target = Vec>; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - - impl DerefMut for WorkerStatesRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { -- &mut self.0 -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl WorkerStatesRegistry { - pub(crate) fn new(workers_count: usize) -> Self { - Self((0..workers_count).map(|_| Default::default()).collect()) - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.54s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::enqueue_job ... ok -test community::roundtrip ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_client ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::multi ... ok -test community::queue ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_created_with_builder ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.72s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__state.rs_line_48_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_48_col_9.log deleted file mode 100644 index 7b63d08c..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_48_col_9.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/worker/state.rs:48:9: replace WorkerStatesRegistry::register_running with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerStatesRegistry::register_running with () -@@ -40,17 +40,17 @@ - } - - impl WorkerStatesRegistry { - pub(crate) fn new(workers_count: usize) -> Self { - Self((0..workers_count).map(|_| Default::default()).collect()) - } - - pub(crate) fn register_running(&self, worker: usize, jid: JobId) { -- self[worker].lock().expect("lock acquired").running_job = Some(jid); -+ () /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn register_success(&self, worker: usize, jid: JobId) { - self[worker] - .lock() - .expect("lock acquired") - .save_last_result(Ok(jid)); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.63s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.07s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.39s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out.old/log/src__worker__state.rs_line_52_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_52_col_9.log deleted file mode 100644 index ee0d192e..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_52_col_9.log +++ /dev/null @@ -1,171 +0,0 @@ - -*** src/worker/state.rs:52:9: replace WorkerStatesRegistry::register_success with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerStatesRegistry::register_success with () -@@ -44,20 +44,17 @@ - Self((0..workers_count).map(|_| Default::default()).collect()) - } - - pub(crate) fn register_running(&self, worker: usize, jid: JobId) { - self[worker].lock().expect("lock acquired").running_job = Some(jid); - } - - pub(crate) fn register_success(&self, worker: usize, jid: JobId) { -- self[worker] -- .lock() -- .expect("lock acquired") -- .save_last_result(Ok(jid)); -+ () /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { - self[worker] - .lock() - .expect("lock acquired") - .save_last_result(Err(f.clone())); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.64s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.27s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::fail ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::enqueue_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__state.rs_line_59_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_59_col_9.log deleted file mode 100644 index b1e9bf65..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_59_col_9.log +++ /dev/null @@ -1,171 +0,0 @@ - -*** src/worker/state.rs:59:9: replace WorkerStatesRegistry::register_failure with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerStatesRegistry::register_failure with () -@@ -51,20 +51,17 @@ - pub(crate) fn register_success(&self, worker: usize, jid: JobId) { - self[worker] - .lock() - .expect("lock acquired") - .save_last_result(Ok(jid)); - } - - pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { -- self[worker] -- .lock() -- .expect("lock acquired") -- .save_last_result(Err(f.clone())); -+ () /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn reset(&self, worker: usize) { - let mut state = self[worker].lock().expect("lock acquired"); - state.last_job_result = None; - state.running_job = None; - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.41s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.03s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_worker ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok -test community::enqueue_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Doc-tests faktory - -running 21 tests -test src/worker/mod.rs - worker::Worker (line 126) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 70) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 122) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 138) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 79) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 88) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 56) - compile ... ok -test src/lib.rs - (line 49) - compile ... ok -test src/proto/client/mod.rs - proto::client::Client (line 104) - compile ... ok -test src/tls.rs - tls::TlsStream (line 20) - compile ... ok -test src/lib.rs - (line 36) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 32) - compile ... ok -test src/proto/batch/mod.rs - proto::batch::Batch (line 95) - compile ... ok -test src/worker/runner.rs - worker::runner::JobRunner (line 15) - compile ... ok -test src/worker/mod.rs - worker::Worker (line 103) - compile ... ok -test src/proto/single/mod.rs - proto::single::Job (line 58) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 40) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 33) ... ok -test src/proto/single/mod.rs - proto::single::Job (line 49) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_in (line 37) ... ok -test src/proto/single/ent/mod.rs - proto::single::ent::JobBuilder::expires_at (line 16) ... ok - -test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s - - -*** result: Success diff --git a/mutants.out.old/log/src__worker__state.rs_line_66_col_9.log b/mutants.out.old/log/src__worker__state.rs_line_66_col_9.log deleted file mode 100644 index 353d288b..00000000 --- a/mutants.out.old/log/src__worker__state.rs_line_66_col_9.log +++ /dev/null @@ -1,122 +0,0 @@ - -*** src/worker/state.rs:66:9: replace WorkerStatesRegistry::reset with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerStatesRegistry::reset with () -@@ -58,13 +58,11 @@ - pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { - self[worker] - .lock() - .expect("lock acquired") - .save_last_result(Err(f.clone())); - } - - pub(crate) fn reset(&self, worker: usize) { -- let mut state = self[worker].lock().expect("lock acquired"); -- state.last_job_result = None; -- state.running_job = None; -+ () /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.44s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml --all-features - Finished test [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 2 - right: 0 - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - - -failures: - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 5 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out.old/missed.txt b/mutants.out.old/missed.txt deleted file mode 100644 index 8f1cc403..00000000 --- a/mutants.out.old/missed.txt +++ /dev/null @@ -1,70 +0,0 @@ -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), String::new())])))) -src/proto/client/ent.rs:53:9: replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(None) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) -src/bin/loadtest.rs:87:70: replace >= with < in main -src/proto/single/ent/mod.rs:46:36: replace + with - in JobBuilder::expires_in -src/proto/batch/handle.rs:44:9: replace BatchHandle<'a, S>::commit -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:23:5: replace check_protocols_match -> Result<(), Error> with Ok(()) -src/bin/loadtest.rs:109:36: replace * with + in main -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) -src/bin/loadtest.rs:109:52: replace + with - in main -src/proto/single/cmd.rs:113:9: replace Fail::set_backtrace with () -src/proto/client/ent.rs:49:9: replace ReadToken<'a, S>::read_bid -> Result with Ok(Default::default()) -src/proto/single/id.rs:84:9: replace ::from -> Self with Default::default() -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(None) -src/proto/single/resp.rs:69:5: replace read_bid -> Result with Ok(Default::default()) -src/proto/single/ent/progress.rs:102:9: replace ::fmt -> std::fmt::Result with Ok(Default::default()) -src/bin/loadtest.rs:78:24: replace % with / in main -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) -src/proto/single/resp.rs:194:49: replace - with + in read -src/proto/single/cmd.rs:48:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:359:24: replace - with / in Client::enqueue_many -src/bin/loadtest.rs:78:24: replace % with + in main -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, None)) -src/proto/client/ent.rs:11:9: replace Client::set_progress -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::new()))) -src/proto/single/id.rs:64:9: replace WorkerId::random -> Self with Default::default() -src/proto/client/ent.rs:43:9: replace Client::commit_batch -> Result<(), Error> with Ok(()) -src/worker/runner.rs:63:9: replace >::run -> Result<(), E> with Ok(()) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, None)) -src/proto/client/ent.rs:17:9: replace Client::get_progress -> Result, Error> with Ok(None) -src/proto/client/mod.rs:359:24: replace - with + in Client::enqueue_many -src/proto/utils.rs:23:33: replace || with && in url_parse -src/proto/client/mod.rs:402:9: replace ReadToken<'a, S>::read_ok -> Result<(), Error> with Ok(()) -src/proto/batch/handle.rs:27:9: replace BatchHandle<'a, S>::add -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), String::new())])))) -src/proto/single/ent/cmd.rs:15:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/batch/status.rs:31:9: replace ::fmt -> std::fmt::Result with Ok(Default::default()) -src/worker/mod.rs:186:9: replace Worker::report_on_all_workers -> Result<(), Error> with Ok(()) -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(None) -src/proto/single/utils.rs:19:5: replace gen_random_wid -> String with "xyzzy".into() -src/bin/loadtest.rs:93:70: replace >= with < in main -src/bin/loadtest.rs:110:38: replace / with * in main -src/bin/loadtest.rs:109:52: replace + with * in main -src/bin/loadtest.rs:15:5: replace main with () -src/proto/single/utils.rs:19:5: replace gen_random_wid -> String with String::new() -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::new()))) -src/proto/client/mod.rs:164:9: replace Client::reconnect -> Result<(), Error> with Ok(()) -src/bin/loadtest.rs:78:28: replace == with != in main -src/worker/mod.rs:148:9: replace Worker::reconnect -> Result<(), Error> with Ok(()) -src/proto/client/ent.rs:23:9: replace Client::get_batch_status -> Result, Error> with Ok(None) -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(None) -src/proto/batch/handle.rs:27:9: replace BatchHandle<'a, S>::add -> Result, Error> with Ok(None) -src/worker/state.rs:23:9: replace WorkerState::save_last_result with () -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) -src/proto/single/cmd.rs:270:9: replace ::issue -> Result<(), Error> with Ok(()) -src/worker/state.rs:59:9: replace WorkerStatesRegistry::register_failure with () -src/bin/loadtest.rs:110:38: replace / with % in main -src/worker/state.rs:15:9: replace WorkerState::take_last_result -> Option> with None -src/bin/loadtest.rs:109:36: replace * with / in main -src/worker/runner.rs:76:9: replace ::run -> Result<(), E> with Ok(()) -src/proto/single/mod.rs:260:9: replace Job::failure -> &Option with &None -src/proto/batch/cmd.rs:8:9: replace ::issue -> Result<(), Error> with Ok(()) -src/worker/state.rs:38:9: replace ::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) -src/worker/mod.rs:178:9: replace Worker::report_failure_to_server -> Result<(), Error> with Ok(()) -src/worker/state.rs:52:9: replace WorkerStatesRegistry::register_success with () -src/proto/client/ent.rs:53:9: replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(Some(Default::default())) -src/proto/single/resp.rs:194:49: replace - with / in read -src/proto/client/mod.rs:366:9: replace Client::info -> Result with Ok(Default::default()) diff --git a/mutants.out.old/mutants.json b/mutants.out.old/mutants.json deleted file mode 100644 index 4221804e..00000000 --- a/mutants.out.old/mutants.json +++ /dev/null @@ -1,8312 +0,0 @@ -[ - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(String::new(), String::new())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdate::set", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 42, - "column": 5 - }, - "end": { - "line": 45, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 44, - "column": 9 - }, - "end": { - "line": 44, - "column": 62 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "check_protocols_match", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 22, - "column": 1 - }, - "end": { - "line": 31, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 12 - }, - "end": { - "line": 23, - "column": 14 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::maybe_bid", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 52, - "column": 5 - }, - "end": { - "line": 68, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 67, - "column": 10 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::args", - "return_type": "-> &[serde_json::Value]", - "span": { - "start": { - "line": 253, - "column": 5 - }, - "end": { - "line": 256, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 255, - "column": 9 - }, - "end": { - "line": 255, - "column": 19 - } - }, - "replacement": "Vec::leak(vec![Default::default()])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "get_env_url", - "return_type": "-> String", - "span": { - "start": { - "line": 4, - "column": 1 - }, - "end": { - "line": 8, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 5, - "column": 5 - }, - "end": { - "line": 7, - "column": 73 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::description", - "return_type": "-> Self", - "span": { - "start": { - "line": 177, - "column": 5 - }, - "end": { - "line": 181, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 179, - "column": 9 - }, - "end": { - "line": 180, - "column": 13 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 138, - "column": 5 - }, - "end": { - "line": 232, - "column": 6 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 9 - }, - "end": { - "line": 46, - "column": 42 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::labels", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 55, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 54, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "Progress::update_percent", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 142, - "column": 5 - }, - "end": { - "line": 150, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 149, - "column": 21 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_id", - "return_type": "-> String", - "span": { - "start": { - "line": 6, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 11, - "column": 19 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 297, - "column": 5 - }, - "end": { - "line": 305, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 298, - "column": 9 - }, - "end": { - "line": 304, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::queue_pause", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 373, - "column": 5 - }, - "end": { - "line": 382, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 378, - "column": 9 - }, - "end": { - "line": 381, - "column": 19 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 87, - "column": 70 - }, - "end": { - "line": 87, - "column": 72 - } - }, - "replacement": "<", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::deref_mut", - "return_type": "-> &mut Self::Target", - "span": { - "start": { - "line": 135, - "column": 5 - }, - "end": { - "line": 137, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 136, - "column": 9 - }, - "end": { - "line": 136, - "column": 25 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::args", - "return_type": "-> &[serde_json::Value]", - "span": { - "start": { - "line": 253, - "column": 5 - }, - "end": { - "line": 256, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 255, - "column": 9 - }, - "end": { - "line": 255, - "column": 19 - } - }, - "replacement": "Vec::leak(Vec::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_complete_callback", - "return_type": "-> Batch", - "span": { - "start": { - "line": 190, - "column": 5 - }, - "end": { - "line": 195, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 192, - "column": 9 - }, - "end": { - "line": 194, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 36 - }, - "end": { - "line": 46, - "column": 37 - } - }, - "replacement": "-", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 328, - "column": 9 - }, - "end": { - "line": 373, - "column": 10 - } - }, - "replacement": "Ok(1)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::commit", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 45, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 44, - "column": 9 - }, - "end": { - "line": 44, - "column": 44 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": ">::drop", - "return_type": "", - "span": { - "start": { - "line": 173, - "column": 5 - }, - "end": { - "line": 181, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 174, - "column": 9 - }, - "end": { - "line": 180, - "column": 12 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::fetch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 282, - "column": 5 - }, - "end": { - "line": 290, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 286, - "column": 9 - }, - "end": { - "line": 289, - "column": 19 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "check_protocols_match", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 22, - "column": 1 - }, - "end": { - "line": 31, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 5 - }, - "end": { - "line": 30, - "column": 11 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 405, - "column": 5 - }, - "end": { - "line": 410, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 409, - "column": 9 - }, - "end": { - "line": 409, - "column": 52 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::heartbeat", - "return_type": "-> Result", - "span": { - "start": { - "line": 292, - "column": 5 - }, - "end": { - "line": 315, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 293, - "column": 9 - }, - "end": { - "line": 314, - "column": 10 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from(Ok(1))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 62, - "column": 33 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 36 - }, - "end": { - "line": 46, - "column": 37 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 36 - }, - "end": { - "line": 109, - "column": 37 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::on_queue", - "return_type": "-> Self", - "span": { - "start": { - "line": 234, - "column": 5 - }, - "end": { - "line": 241, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 239, - "column": 9 - }, - "end": { - "line": 240, - "column": 13 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_success_to_server", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 181, - "column": 5 - }, - "end": { - "line": 183, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 182, - "column": 9 - }, - "end": { - "line": 182, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 52 - }, - "end": { - "line": 109, - "column": 53 - } - }, - "replacement": "-", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::set_backtrace", - "return_type": "", - "span": { - "start": { - "line": 112, - "column": 5 - }, - "end": { - "line": 114, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 113, - "column": 9 - }, - "end": { - "line": 113, - "column": 32 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "host_from_url", - "return_type": "-> String", - "span": { - "start": { - "line": 10, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 5 - }, - "end": { - "line": 11, - "column": 74 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 228, - "column": 9 - }, - "end": { - "line": 241, - "column": 16 - } - }, - "replacement": "0", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 358, - "column": 24 - }, - "end": { - "line": 358, - "column": 26 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_bid", - "return_type": "-> Result", - "span": { - "start": { - "line": 48, - "column": 5 - }, - "end": { - "line": 50, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 49, - "column": 9 - }, - "end": { - "line": 49, - "column": 51 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_at", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 12, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 25, - "column": 9 - }, - "end": { - "line": 28, - "column": 10 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 85, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 84, - "column": 9 - }, - "end": { - "line": 84, - "column": 23 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "write_queues", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 26, - "column": 1 - }, - "end": { - "line": 39, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 38, - "column": 11 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 249, - "column": 5 - }, - "end": { - "line": 254, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 253, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::connect", - "return_type": "-> Result", - "span": { - "start": { - "line": 38, - "column": 5 - }, - "end": { - "line": 57, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 56, - "column": 15 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 228, - "column": 9 - }, - "end": { - "line": 241, - "column": 16 - } - }, - "replacement": "1", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "bad", - "return_type": "-> error::Protocol", - "span": { - "start": { - "line": 7, - "column": 1 - }, - "end": { - "line": 30, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 8, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 232, - "column": 25 - }, - "end": { - "line": 232, - "column": 27 - } - }, - "replacement": "*=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from_iter([Default::default()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 160, - "column": 29 - }, - "end": { - "line": 160, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::kind", - "return_type": "-> &str", - "span": { - "start": { - "line": 248, - "column": 5 - }, - "end": { - "line": 251, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 250, - "column": 19 - } - }, - "replacement": "\"\"", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 405, - "column": 5 - }, - "end": { - "line": 410, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 409, - "column": 9 - }, - "end": { - "line": 409, - "column": 52 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from_iter([Default::default()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 172, - "column": 29 - }, - "end": { - "line": 172, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::reset", - "return_type": "", - "span": { - "start": { - "line": 65, - "column": 5 - }, - "end": { - "line": 69, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 66, - "column": 9 - }, - "end": { - "line": 68, - "column": 34 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::queue_resume", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 384, - "column": 5 - }, - "end": { - "line": 393, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 389, - "column": 9 - }, - "end": { - "line": 392, - "column": 19 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 41, - "column": 41 - }, - "end": { - "line": 41, - "column": 42 - } - }, - "replacement": ">", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "write_command", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 263, - "column": 1 - }, - "end": { - "line": 269, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 267, - "column": 5 - }, - "end": { - "line": 268, - "column": 25 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_bid", - "return_type": "-> Result", - "span": { - "start": { - "line": 67, - "column": 1 - }, - "end": { - "line": 83, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 69, - "column": 5 - }, - "end": { - "line": 82, - "column": 6 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_cuurently_running", - "return_type": "-> Option", - "span": { - "start": { - "line": 18, - "column": 5 - }, - "end": { - "line": 20, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 9 - }, - "end": { - "line": 19, - "column": 32 - } - }, - "replacement": "None", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "::fmt", - "return_type": "-> std::fmt::Result", - "span": { - "start": { - "line": 101, - "column": 5 - }, - "end": { - "line": 112, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 102, - "column": 9 - }, - "end": { - "line": 111, - "column": 27 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 160, - "column": 29 - }, - "end": { - "line": 160, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 173, - "column": 5 - }, - "end": { - "line": 175, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 174, - "column": 9 - }, - "end": { - "line": 174, - "column": 25 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 20, - "column": 9 - }, - "end": { - "line": 76, - "column": 10 - } - }, - "replacement": "Ok(true)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_hi", - "return_type": "-> Result", - "span": { - "start": { - "line": 97, - "column": 1 - }, - "end": { - "line": 105, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 98, - "column": 5 - }, - "end": { - "line": 104, - "column": 38 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::builder", - "return_type": "-> JobBuilder", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 232, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 231, - "column": 9 - }, - "end": { - "line": 231, - "column": 30 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_batch_status", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 25, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 24, - "column": 50 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 328, - "column": 9 - }, - "end": { - "line": 373, - "column": 10 - } - }, - "replacement": "Ok(0)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 24 - }, - "end": { - "line": 78, - "column": 25 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 29 - }, - "end": { - "line": 148, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::hostname", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 39, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 9 - }, - "end": { - "line": 38, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 41, - "column": 41 - }, - "end": { - "line": 41, - "column": 42 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 29 - }, - "end": { - "line": 148, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "Batch::builder", - "return_type": "-> BatchBuilder", - "span": { - "start": { - "line": 161, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 28 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_last_result", - "return_type": "-> Option>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 15, - "column": 36 - } - }, - "replacement": "Some(Ok(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 47, - "column": 39 - }, - "end": { - "line": 47, - "column": 41 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 49 - }, - "end": { - "line": 194, - "column": 50 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::fetch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 282, - "column": 5 - }, - "end": { - "line": 290, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 286, - "column": 9 - }, - "end": { - "line": 289, - "column": 19 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_progress", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 19, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 17, - "column": 9 - }, - "end": { - "line": 18, - "column": 50 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::from(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 49, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 48, - "column": 9 - }, - "end": { - "line": 48, - "column": 44 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::connect", - "return_type": "-> Result, E>, Error>", - "span": { - "start": { - "line": 106, - "column": 5 - }, - "end": { - "line": 119, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 113, - "column": 9 - }, - "end": { - "line": 118, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 359, - "column": 24 - }, - "end": { - "line": 359, - "column": 25 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::with_connector", - "return_type": "-> Result", - "span": { - "start": { - "line": 59, - "column": 5 - }, - "end": { - "line": 70, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 63, - "column": 9 - }, - "end": { - "line": 69, - "column": 68 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 109, - "column": 1 - }, - "end": { - "line": 118, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 5 - }, - "end": { - "line": 117, - "column": 38 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from_iter([Ok(1)])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 129, - "column": 5 - }, - "end": { - "line": 131, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 130, - "column": 9 - }, - "end": { - "line": 130, - "column": 21 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::register_runner", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 80, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 89, - "column": 9 - }, - "end": { - "line": 90, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 24 - }, - "end": { - "line": 78, - "column": 25 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::init", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 228, - "column": 5 - }, - "end": { - "line": 266, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 229, - "column": 9 - }, - "end": { - "line": 265, - "column": 15 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, None))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::set_progress", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 9, - "column": 5 - }, - "end": { - "line": 13, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 9 - }, - "end": { - "line": 12, - "column": 48 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::new())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "WorkerId::random", - "return_type": "-> Self", - "span": { - "start": { - "line": 62, - "column": 5 - }, - "end": { - "line": 65, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 64, - "column": 9 - }, - "end": { - "line": 64, - "column": 38 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::generic", - "return_type": "-> Self", - "span": { - "start": { - "line": 108, - "column": 5 - }, - "end": { - "line": 110, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 9 - }, - "end": { - "line": 109, - "column": 46 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_until_start", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 63, - "column": 5 - }, - "end": { - "line": 70, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 69, - "column": 9 - }, - "end": { - "line": 69, - "column": 57 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 28, - "column": 23 - }, - "end": { - "line": 28, - "column": 25 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::commit_batch", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 42, - "column": 5 - }, - "end": { - "line": 44, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 43, - "column": 9 - }, - "end": { - "line": 43, - "column": 67 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_one", - "return_type": "-> Result", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 276, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 249, - "column": 9 - }, - "end": { - "line": 275, - "column": 17 - } - }, - "replacement": "Ok(true)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 17 - }, - "end": { - "line": 29, - "column": 19 - } - }, - "replacement": "||", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "JobId::random", - "return_type": "-> Self", - "span": { - "start": { - "line": 41, - "column": 5 - }, - "end": { - "line": 44, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 43, - "column": 9 - }, - "end": { - "line": 43, - "column": 38 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from(Default::default())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 246, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 245, - "column": 9 - }, - "end": { - "line": 245, - "column": 31 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": ">::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 62, - "column": 5 - }, - "end": { - "line": 64, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 63, - "column": 9 - }, - "end": { - "line": 63, - "column": 24 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new(Default::default())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": ">::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 90, - "column": 5 - }, - "end": { - "line": 92, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 91, - "column": 9 - }, - "end": { - "line": 91, - "column": 28 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 109, - "column": 1 - }, - "end": { - "line": 118, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 112, - "column": 14 - }, - "end": { - "line": 112, - "column": 16 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_id", - "return_type": "-> String", - "span": { - "start": { - "line": 6, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 11, - "column": 19 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, None))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "::clone", - "return_type": "-> Self", - "span": { - "start": { - "line": 207, - "column": 5 - }, - "end": { - "line": 214, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 208, - "column": 9 - }, - "end": { - "line": 213, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 16, - "column": 21 - }, - "end": { - "line": 16, - "column": 23 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_progress", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 19, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 17, - "column": 9 - }, - "end": { - "line": 18, - "column": 50 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "host_from_url", - "return_type": "-> String", - "span": { - "start": { - "line": 10, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 5 - }, - "end": { - "line": 11, - "column": 74 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 322, - "column": 5 - }, - "end": { - "line": 327, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 326, - "column": 9 - }, - "end": { - "line": 326, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 359, - "column": 24 - }, - "end": { - "line": 359, - "column": 25 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 33 - }, - "end": { - "line": 23, - "column": 35 - } - }, - "replacement": "&&", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_callbacks", - "return_type": "-> Batch", - "span": { - "start": { - "line": 197, - "column": 5 - }, - "end": { - "line": 203, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 199, - "column": 9 - }, - "end": { - "line": 202, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new(Ok(0))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "get_env_url", - "return_type": "-> String", - "span": { - "start": { - "line": 4, - "column": 1 - }, - "end": { - "line": 8, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 5, - "column": 5 - }, - "end": { - "line": 7, - "column": 73 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::default", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 77, - "column": 5 - }, - "end": { - "line": 88, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 83, - "column": 9 - }, - "end": { - "line": 87, - "column": 53 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::generic_with_backtrace", - "return_type": "-> Self", - "span": { - "start": { - "line": 119, - "column": 5 - }, - "end": { - "line": 132, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 123, - "column": 9 - }, - "end": { - "line": 131, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 401, - "column": 5 - }, - "end": { - "line": 403, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 402, - "column": 9 - }, - "end": { - "line": 402, - "column": 50 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::connect_again", - "return_type": "-> Result", - "span": { - "start": { - "line": 158, - "column": 5 - }, - "end": { - "line": 161, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 159, - "column": 9 - }, - "end": { - "line": 160, - "column": 48 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::add", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 27, - "column": 9 - }, - "end": { - "line": 28, - "column": 47 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(String::new(), String::new())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_success_callback", - "return_type": "-> Batch", - "span": { - "start": { - "line": 183, - "column": 5 - }, - "end": { - "line": 188, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 185, - "column": 9 - }, - "end": { - "line": 187, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 28, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 27, - "column": 10 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 33, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 32, - "column": 9 - }, - "end": { - "line": 32, - "column": 16 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::failure", - "return_type": "-> &Option", - "span": { - "start": { - "line": 258, - "column": 5 - }, - "end": { - "line": 261, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 260, - "column": 9 - }, - "end": { - "line": 260, - "column": 22 - } - }, - "replacement": "&Some(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 190, - "column": 63 - }, - "end": { - "line": 190, - "column": 64 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 172, - "column": 29 - }, - "end": { - "line": 172, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "write_command_and_await_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 271, - "column": 1 - }, - "end": { - "line": 280, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 5 - }, - "end": { - "line": 279, - "column": 26 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "::fmt", - "return_type": "-> std::fmt::Result", - "span": { - "start": { - "line": 30, - "column": 5 - }, - "end": { - "line": 38, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 9 - }, - "end": { - "line": 37, - "column": 27 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_on_all_workers", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 185, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 186, - "column": 9 - }, - "end": { - "line": 220, - "column": 15 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::workers", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 57, - "column": 5 - }, - "end": { - "line": 63, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 61, - "column": 9 - }, - "end": { - "line": 62, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::connect_with", - "return_type": "-> Result, E>, Error>", - "span": { - "start": { - "line": 93, - "column": 5 - }, - "end": { - "line": 104, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 99, - "column": 9 - }, - "end": { - "line": 103, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 62, - "column": 33 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_cuurently_running", - "return_type": "-> Option", - "span": { - "start": { - "line": 18, - "column": 5 - }, - "end": { - "line": 20, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 9 - }, - "end": { - "line": 19, - "column": 32 - } - }, - "replacement": "Some(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 238, - "column": 5 - }, - "end": { - "line": 240, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 239, - "column": 9 - }, - "end": { - "line": 239, - "column": 43 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 232, - "column": 25 - }, - "end": { - "line": 232, - "column": 27 - } - }, - "replacement": "-=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_wid", - "return_type": "-> String", - "span": { - "start": { - "line": 18, - "column": 1 - }, - "end": { - "line": 20, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 5 - }, - "end": { - "line": 19, - "column": 36 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::id", - "return_type": "-> &JobId", - "span": { - "start": { - "line": 243, - "column": 5 - }, - "end": { - "line": 246, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 245, - "column": 9 - }, - "end": { - "line": 245, - "column": 18 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 93, - "column": 70 - }, - "end": { - "line": 93, - "column": 72 - } - }, - "replacement": "<", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 38 - }, - "end": { - "line": 110, - "column": 39 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 52 - }, - "end": { - "line": 109, - "column": 53 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 242, - "column": 5 - }, - "end": { - "line": 244, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 243, - "column": 9 - }, - "end": { - "line": 243, - "column": 16 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 143, - "column": 5 - }, - "end": { - "line": 145, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 144, - "column": 9 - }, - "end": { - "line": 144, - "column": 43 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 118, - "column": 34 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_wid", - "return_type": "-> String", - "span": { - "start": { - "line": 18, - "column": 1 - }, - "end": { - "line": 20, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 5 - }, - "end": { - "line": 19, - "column": 36 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 20, - "column": 9 - }, - "end": { - "line": 76, - "column": 10 - } - }, - "replacement": "Ok(false)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new(Default::default())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::new())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::reconnect", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 163, - "column": 5 - }, - "end": { - "line": 166, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 164, - "column": 9 - }, - "end": { - "line": 165, - "column": 26 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/mod.rs", - "function": { - "function_name": ">::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 52, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 50, - "column": 9 - }, - "end": { - "line": 51, - "column": 30 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::from_iter([Default::default()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "parse_provided_or_from_env", - "return_type": "-> Result", - "span": { - "start": { - "line": 30, - "column": 1 - }, - "end": { - "line": 32, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 31, - "column": 45 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 28 - }, - "end": { - "line": 78, - "column": 30 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 262, - "column": 5 - }, - "end": { - "line": 264, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 263, - "column": 9 - }, - "end": { - "line": 263, - "column": 23 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new(Ok(1))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::reconnect", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 147, - "column": 5 - }, - "end": { - "line": 149, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 9 - }, - "end": { - "line": 148, - "column": 33 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_until_success", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 72, - "column": 5 - }, - "end": { - "line": 80, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 79, - "column": 9 - }, - "end": { - "line": 79, - "column": 59 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::kind", - "return_type": "-> &str", - "span": { - "start": { - "line": 248, - "column": 5 - }, - "end": { - "line": 251, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 250, - "column": 19 - } - }, - "replacement": "\"xyzzy\"", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_batch_status", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 25, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 24, - "column": 50 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Hello::set_password", - "return_type": "", - "span": { - "start": { - "line": 214, - "column": 5 - }, - "end": { - "line": 224, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 215, - "column": 9 - }, - "end": { - "line": 223, - "column": 58 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/mod.rs", - "function": { - "function_name": "::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 38, - "column": 5 - }, - "end": { - "line": 41, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 39, - "column": 9 - }, - "end": { - "line": 40, - "column": 41 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 190, - "column": 63 - }, - "end": { - "line": 190, - "column": 64 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::add", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 27, - "column": 9 - }, - "end": { - "line": 28, - "column": 47 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::from(Ok(())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 250, - "column": 5 - }, - "end": { - "line": 252, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 251, - "column": 9 - }, - "end": { - "line": 251, - "column": 29 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::save_last_result", - "return_type": "", - "span": { - "start": { - "line": 22, - "column": 5 - }, - "end": { - "line": 24, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 23, - "column": 41 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 27, - "column": 12 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_job", - "return_type": "-> Result<(), Failed>", - "span": { - "start": { - "line": 169, - "column": 5 - }, - "end": { - "line": 175, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 174, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 269, - "column": 5 - }, - "end": { - "line": 274, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 270, - "column": 9 - }, - "end": { - "line": 273, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "Progress::update_builder", - "return_type": "-> ProgressUpdateBuilder", - "span": { - "start": { - "line": 152, - "column": 5 - }, - "end": { - "line": 155, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 154, - "column": 9 - }, - "end": { - "line": 154, - "column": 53 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 206, - "column": 21 - }, - "end": { - "line": 206, - "column": 23 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_running", - "return_type": "", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 49, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 48, - "column": 9 - }, - "end": { - "line": 48, - "column": 77 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_failure", - "return_type": "", - "span": { - "start": { - "line": 58, - "column": 5 - }, - "end": { - "line": 63, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 59, - "column": 9 - }, - "end": { - "line": 62, - "column": 47 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::id", - "return_type": "-> &BatchId", - "span": { - "start": { - "line": 12, - "column": 5 - }, - "end": { - "line": 15, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 14, - "column": 9 - }, - "end": { - "line": 14, - "column": 18 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_jid", - "return_type": "-> String", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 16, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 15, - "column": 33 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 63 - }, - "end": { - "line": 31, - "column": 65 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::add_to_custom_data", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 175, - "column": 5 - }, - "end": { - "line": 184, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 181, - "column": 9 - }, - "end": { - "line": 183, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_for", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 61, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 60, - "column": 9 - }, - "end": { - "line": 60, - "column": 52 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from(Ok(0))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 38 - }, - "end": { - "line": 110, - "column": 39 - } - }, - "replacement": "%", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::wid", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 41, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 45, - "column": 9 - }, - "end": { - "line": 46, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 39, - "column": 41 - }, - "end": { - "line": 39, - "column": 43 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::for_worker", - "return_type": "-> Result", - "span": { - "start": { - "line": 284, - "column": 5 - }, - "end": { - "line": 291, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 285, - "column": 9 - }, - "end": { - "line": 290, - "column": 11 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::build", - "return_type": "-> Job", - "span": { - "start": { - "line": 186, - "column": 5 - }, - "end": { - "line": 199, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 9 - }, - "end": { - "line": 198, - "column": 58 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::args", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 165, - "column": 5 - }, - "end": { - "line": 173, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 171, - "column": 9 - }, - "end": { - "line": 172, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_last_result", - "return_type": "-> Option>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 15, - "column": 36 - } - }, - "replacement": "None", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_one", - "return_type": "-> Result", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 276, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 249, - "column": 9 - }, - "end": { - "line": 275, - "column": 17 - } - }, - "replacement": "Ok(false)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 36 - }, - "end": { - "line": 109, - "column": 37 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdateBuilder::build", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 57, - "column": 5 - }, - "end": { - "line": 61, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 59, - "column": 9 - }, - "end": { - "line": 60, - "column": 80 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from_iter([Ok(0)])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": "::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 75, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 76, - "column": 9 - }, - "end": { - "line": 76, - "column": 24 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::failure", - "return_type": "-> &Option", - "span": { - "start": { - "line": 258, - "column": 5 - }, - "end": { - "line": 261, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 260, - "column": 9 - }, - "end": { - "line": 260, - "column": 22 - } - }, - "replacement": "&None", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::register", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 65, - "column": 5 - }, - "end": { - "line": 78, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 76, - "column": 9 - }, - "end": { - "line": 77, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 12, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 8, - "column": 9 - }, - "end": { - "line": 11, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "::deref_mut", - "return_type": "-> &mut Self::Target", - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 39, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 38, - "column": 20 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_failure_to_server", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 177, - "column": 5 - }, - "end": { - "line": 179, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 178, - "column": 9 - }, - "end": { - "line": 178, - "column": 47 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from(Default::default())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_success", - "return_type": "", - "span": { - "start": { - "line": 51, - "column": 5 - }, - "end": { - "line": 56, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 55, - "column": 40 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 162, - "column": 5 - }, - "end": { - "line": 166, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 165, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::maybe_bid", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 52, - "column": 5 - }, - "end": { - "line": 68, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 67, - "column": 10 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::new(Ok(())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::from_iter([Ok(())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdate::builder", - "return_type": "-> ProgressUpdateBuilder", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 53, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 52, - "column": 40 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 305, - "column": 57 - }, - "end": { - "line": 305, - "column": 59 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 115, - "column": 5 - }, - "end": { - "line": 124, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 116, - "column": 9 - }, - "end": { - "line": 123, - "column": 72 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 49 - }, - "end": { - "line": 194, - "column": 50 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::build", - "return_type": "-> Batch", - "span": { - "start": { - "line": 168, - "column": 5 - }, - "end": { - "line": 170, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 169, - "column": 9 - }, - "end": { - "line": 169, - "column": 65 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 236, - "column": 5 - }, - "end": { - "line": 238, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 237, - "column": 9 - }, - "end": { - "line": 237, - "column": 16 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::info", - "return_type": "-> Result", - "span": { - "start": { - "line": 362, - "column": 5 - }, - "end": { - "line": 371, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 366, - "column": 9 - }, - "end": { - "line": 370, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_jid", - "return_type": "-> String", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 16, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 15, - "column": 33 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } -] \ No newline at end of file diff --git a/mutants.out.old/outcomes.json b/mutants.out.old/outcomes.json deleted file mode 100644 index b4a87bc9..00000000 --- a/mutants.out.old/outcomes.json +++ /dev/null @@ -1,16306 +0,0 @@ -{ - "outcomes": [ - { - "scenario": "Baseline", - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/baseline.log", - "summary": "Success", - "phase_results": [ - { - "phase": "Build", - "duration": 6.069228756, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.019458177, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(String::new(), String::new())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.606067165, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.022863465, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdate::set", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 42, - "column": 5 - }, - "end": { - "line": 45, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 44, - "column": 9 - }, - "end": { - "line": 44, - "column": 62 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_44_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201498611, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302069531, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252610917, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.30250988, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "check_protocols_match", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 22, - "column": 1 - }, - "end": { - "line": 31, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 12 - }, - "end": { - "line": 23, - "column": 14 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_23_col_12.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5564371750000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.314013137, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::maybe_bid", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 52, - "column": 5 - }, - "end": { - "line": 68, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 67, - "column": 10 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_53_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.255513106, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.926714327, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::args", - "return_type": "-> &[serde_json::Value]", - "span": { - "start": { - "line": 253, - "column": 5 - }, - "end": { - "line": 256, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 255, - "column": 9 - }, - "end": { - "line": 255, - "column": 19 - } - }, - "replacement": "Vec::leak(vec![Default::default()])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_255_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.255288271, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.270058471, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "get_env_url", - "return_type": "-> String", - "span": { - "start": { - "line": 4, - "column": 1 - }, - "end": { - "line": 8, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 5, - "column": 5 - }, - "end": { - "line": 7, - "column": 73 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_5_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.3056118620000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.110929946, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::description", - "return_type": "-> Self", - "span": { - "start": { - "line": 177, - "column": 5 - }, - "end": { - "line": 181, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 179, - "column": 9 - }, - "end": { - "line": 180, - "column": 13 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_179_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252425373, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.505955964, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.921608378, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_170_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.402956355, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201988657, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 138, - "column": 5 - }, - "end": { - "line": 232, - "column": 6 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_138_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251715045, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_278_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201712989, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 9 - }, - "end": { - "line": 46, - "column": 42 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252458325, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::labels", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 55, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 54, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_53_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.606359621, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.226381436, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "Progress::update_percent", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 142, - "column": 5 - }, - "end": { - "line": 150, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 149, - "column": 21 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_146_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.25306486, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_id", - "return_type": "-> String", - "span": { - "start": { - "line": 6, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 11, - "column": 19 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_7_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.505708944, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 0.25309246, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 297, - "column": 5 - }, - "end": { - "line": 305, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 298, - "column": 9 - }, - "end": { - "line": 304, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_298_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.355942309, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.264221043, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::queue_pause", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 373, - "column": 5 - }, - "end": { - "line": 382, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 378, - "column": 9 - }, - "end": { - "line": 381, - "column": 19 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_378_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.506868834, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.277001245, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 87, - "column": 70 - }, - "end": { - "line": 87, - "column": 72 - } - }, - "replacement": "<", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_87_col_70.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.457057343, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.876596179, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::deref_mut", - "return_type": "-> &mut Self::Target", - "span": { - "start": { - "line": 135, - "column": 5 - }, - "end": { - "line": 137, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 136, - "column": 9 - }, - "end": { - "line": 136, - "column": 25 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_136_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201447228, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::args", - "return_type": "-> &[serde_json::Value]", - "span": { - "start": { - "line": 253, - "column": 5 - }, - "end": { - "line": 256, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 255, - "column": 9 - }, - "end": { - "line": 255, - "column": 19 - } - }, - "replacement": "Vec::leak(Vec::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_255_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.25559906, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.275498458, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_complete_callback", - "return_type": "-> Batch", - "span": { - "start": { - "line": 190, - "column": 5 - }, - "end": { - "line": 195, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 192, - "column": 9 - }, - "end": { - "line": 194, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_192_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252657381, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 36 - }, - "end": { - "line": 46, - "column": 37 - } - }, - "replacement": "-", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.156120723, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.026519295, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 328, - "column": 9 - }, - "end": { - "line": 373, - "column": 10 - } - }, - "replacement": "Ok(1)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_328_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.255759142, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.264020507, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_146_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.45312066, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::commit", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 45, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 44, - "column": 9 - }, - "end": { - "line": 44, - "column": 44 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_44_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.306093784, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.929068394, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": ">::drop", - "return_type": "", - "span": { - "start": { - "line": 173, - "column": 5 - }, - "end": { - "line": 181, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 174, - "column": 9 - }, - "end": { - "line": 180, - "column": 12 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_174_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.506267816, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.170584589, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::fetch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 282, - "column": 5 - }, - "end": { - "line": 290, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 286, - "column": 9 - }, - "end": { - "line": 289, - "column": 19 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_286_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302703071, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "check_protocols_match", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 22, - "column": 1 - }, - "end": { - "line": 31, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 5 - }, - "end": { - "line": 30, - "column": 11 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_23_col_5.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.6060398679999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.970971688, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302278787, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 405, - "column": 5 - }, - "end": { - "line": 410, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 409, - "column": 9 - }, - "end": { - "line": 409, - "column": 52 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_409_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.6057265950000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.264014013, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::heartbeat", - "return_type": "-> Result", - "span": { - "start": { - "line": 292, - "column": 5 - }, - "end": { - "line": 315, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 293, - "column": 9 - }, - "end": { - "line": 314, - "column": 10 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_293_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302929409, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from(Ok(1))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.453028426, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 62, - "column": 33 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_37_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252341691, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 36 - }, - "end": { - "line": 46, - "column": 37 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201960189, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_163_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.452194979, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 36 - }, - "end": { - "line": 109, - "column": 37 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_109_col_36.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.556071322, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.924142252, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_002.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5569651979999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.97870665, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::on_queue", - "return_type": "-> Self", - "span": { - "start": { - "line": 234, - "column": 5 - }, - "end": { - "line": 241, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 239, - "column": 9 - }, - "end": { - "line": 240, - "column": 13 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_239_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251995795, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_success_to_server", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 181, - "column": 5 - }, - "end": { - "line": 183, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 182, - "column": 9 - }, - "end": { - "line": 182, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_182_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.506025712, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.225914682, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 52 - }, - "end": { - "line": 109, - "column": 53 - } - }, - "replacement": "-", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_109_col_52.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.456886269, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.924634868, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251978636, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::set_backtrace", - "return_type": "", - "span": { - "start": { - "line": 112, - "column": 5 - }, - "end": { - "line": 114, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 113, - "column": 9 - }, - "end": { - "line": 113, - "column": 32 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_113_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.256260631, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.917398735999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "host_from_url", - "return_type": "-> String", - "span": { - "start": { - "line": 10, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 5 - }, - "end": { - "line": 11, - "column": 74 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_11_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.203663548, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.107478662, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 228, - "column": 9 - }, - "end": { - "line": 241, - "column": 16 - } - }, - "replacement": "0", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_228_col_9.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5551648980000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.034576478, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_004.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252901648, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 358, - "column": 24 - }, - "end": { - "line": 358, - "column": 26 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_358_col_24.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5054215420000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.014772038, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_bid", - "return_type": "-> Result", - "span": { - "start": { - "line": 48, - "column": 5 - }, - "end": { - "line": 50, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 49, - "column": 9 - }, - "end": { - "line": 49, - "column": 51 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_49_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.3041385650000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.916773623, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_170_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.401662926, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_at", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 12, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 25, - "column": 9 - }, - "end": { - "line": 28, - "column": 10 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_25_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.25212848, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 85, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 84, - "column": 9 - }, - "end": { - "line": 84, - "column": 23 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__id.rs_line_84_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.2035577960000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.917862705, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252357213, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "write_queues", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 26, - "column": 1 - }, - "end": { - "line": 39, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 38, - "column": 11 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_33_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.305426818, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.217652049, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 249, - "column": 5 - }, - "end": { - "line": 254, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 253, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_250_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.30607833, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.265344363, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::connect", - "return_type": "-> Result", - "span": { - "start": { - "line": 38, - "column": 5 - }, - "end": { - "line": 57, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 56, - "column": 15 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_52_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252950108, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 228, - "column": 9 - }, - "end": { - "line": 241, - "column": 16 - } - }, - "replacement": "1", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_228_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.605953902, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.210827457, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "bad", - "return_type": "-> error::Protocol", - "span": { - "start": { - "line": 7, - "column": 1 - }, - "end": { - "line": 30, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 8, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_8_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352434922, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 232, - "column": 25 - }, - "end": { - "line": 232, - "column": 27 - } - }, - "replacement": "*=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_232_col_25.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.7061020820000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.053126494, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from_iter([Default::default()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302379465, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 160, - "column": 29 - }, - "end": { - "line": 160, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_160_col_29.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.456210874, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.211719366, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::kind", - "return_type": "-> &str", - "span": { - "start": { - "line": 248, - "column": 5 - }, - "end": { - "line": 251, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 250, - "column": 19 - } - }, - "replacement": "\"\"", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_250_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.455927726, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.212922792, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 405, - "column": 5 - }, - "end": { - "line": 410, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 409, - "column": 9 - }, - "end": { - "line": 409, - "column": 52 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_409_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252281983, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.202092841, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from_iter([Default::default()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_29_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201528492, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 172, - "column": 29 - }, - "end": { - "line": 172, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_172_col_29.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.45605138, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.163586501, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::reset", - "return_type": "", - "span": { - "start": { - "line": 65, - "column": 5 - }, - "end": { - "line": 69, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 66, - "column": 9 - }, - "end": { - "line": 68, - "column": 34 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_66_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.456633158, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.226377471, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_002.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.2546792199999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.976244056, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302904793, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_163_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.402540953, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::queue_resume", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 384, - "column": 5 - }, - "end": { - "line": 393, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 389, - "column": 9 - }, - "end": { - "line": 392, - "column": 19 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_389_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.457058845, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.259337977, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 41, - "column": 41 - }, - "end": { - "line": 41, - "column": 42 - } - }, - "replacement": ">", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_41_col_41.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.456042988, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.4630924419999998, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.303046298, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "write_command", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 263, - "column": 1 - }, - "end": { - "line": 269, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 267, - "column": 5 - }, - "end": { - "line": 268, - "column": 25 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_267_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5066712469999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.223519404, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302856862, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302673962, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_bid", - "return_type": "-> Result", - "span": { - "start": { - "line": 67, - "column": 1 - }, - "end": { - "line": 83, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 69, - "column": 5 - }, - "end": { - "line": 82, - "column": 6 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_69_col_5.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.707542909, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.027401457, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_cuurently_running", - "return_type": "-> Option", - "span": { - "start": { - "line": 18, - "column": 5 - }, - "end": { - "line": 20, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 9 - }, - "end": { - "line": 19, - "column": 32 - } - }, - "replacement": "None", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_19_col_9.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.656714411, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.037068392, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "::fmt", - "return_type": "-> std::fmt::Result", - "span": { - "start": { - "line": 101, - "column": 5 - }, - "end": { - "line": 112, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 102, - "column": 9 - }, - "end": { - "line": 111, - "column": 27 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_102_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.355242197, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.973519559, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 160, - "column": 29 - }, - "end": { - "line": 160, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_160_col_29_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.606499391, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.063528271, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 173, - "column": 5 - }, - "end": { - "line": 175, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 174, - "column": 9 - }, - "end": { - "line": 174, - "column": 25 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_174_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252291667, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 20, - "column": 9 - }, - "end": { - "line": 76, - "column": 10 - } - }, - "replacement": "Ok(true)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_20_col_9.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.506532639, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.029634816, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_hi", - "return_type": "-> Result", - "span": { - "start": { - "line": 97, - "column": 1 - }, - "end": { - "line": 105, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 98, - "column": 5 - }, - "end": { - "line": 104, - "column": 38 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_98_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302514971, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::builder", - "return_type": "-> JobBuilder", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 232, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 231, - "column": 9 - }, - "end": { - "line": 231, - "column": 30 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_231_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252132652, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_batch_status", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 25, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 24, - "column": 50 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_23_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251718456, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252329278, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 328, - "column": 9 - }, - "end": { - "line": 373, - "column": 10 - } - }, - "replacement": "Ok(0)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_328_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154052137, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.210776422, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 24 - }, - "end": { - "line": 78, - "column": 25 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_78_col_24.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.304665622, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.024235211, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 29 - }, - "end": { - "line": 148, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_148_col_29.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5564481780000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.113651392, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::hostname", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 39, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 9 - }, - "end": { - "line": 38, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_37_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.556272249, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.221970555, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 41, - "column": 41 - }, - "end": { - "line": 41, - "column": 42 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_41_col_41_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.456482595, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.464430939, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 29 - }, - "end": { - "line": 148, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_148_col_29_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.404782016, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.110927248, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "Batch::builder", - "return_type": "-> BatchBuilder", - "span": { - "start": { - "line": 161, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 28 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_163_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252070849, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_003.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.556398336, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.029251906, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_last_result", - "return_type": "-> Option>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 15, - "column": 36 - } - }, - "replacement": "Some(Ok(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_15_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.505748528, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.213775705, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 47, - "column": 39 - }, - "end": { - "line": 47, - "column": 41 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_47_col_39.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.506200911, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.213745098, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302474137, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 49 - }, - "end": { - "line": 194, - "column": 50 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_194_col_49.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.405887814, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.927072117, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::fetch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 282, - "column": 5 - }, - "end": { - "line": 290, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 286, - "column": 9 - }, - "end": { - "line": 289, - "column": 19 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_286_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.606540253, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.210263122, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_progress", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 19, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 17, - "column": 9 - }, - "end": { - "line": 18, - "column": 50 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_17_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.303311712, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::from(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252317905, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_146_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.402467717, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251597839, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 49, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 48, - "column": 9 - }, - "end": { - "line": 48, - "column": 44 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_48_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.554837587, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.979030142, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::connect", - "return_type": "-> Result, E>, Error>", - "span": { - "start": { - "line": 106, - "column": 5 - }, - "end": { - "line": 119, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 113, - "column": 9 - }, - "end": { - "line": 118, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_113_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252781578, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252572394, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 359, - "column": 24 - }, - "end": { - "line": 359, - "column": 25 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_359_col_24.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.2542217070000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.318451759, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::with_connector", - "return_type": "-> Result", - "span": { - "start": { - "line": 59, - "column": 5 - }, - "end": { - "line": 70, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 63, - "column": 9 - }, - "end": { - "line": 69, - "column": 68 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_63_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201450325, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 109, - "column": 1 - }, - "end": { - "line": 118, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 5 - }, - "end": { - "line": 117, - "column": 38 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_110_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.4544955179999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.275576198, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from_iter([Ok(1)])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.453070114, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_004.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302346033, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 129, - "column": 5 - }, - "end": { - "line": 131, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 130, - "column": 9 - }, - "end": { - "line": 130, - "column": 21 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_130_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302771613, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::register_runner", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 80, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 89, - "column": 9 - }, - "end": { - "line": 90, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_89_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.606126763, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.212096398, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.453367632, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 24 - }, - "end": { - "line": 78, - "column": 25 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_78_col_24_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.506570295, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.927682088, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::init", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 228, - "column": 5 - }, - "end": { - "line": 266, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 229, - "column": 9 - }, - "end": { - "line": 265, - "column": 15 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_229_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.90671136, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.21425176, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, None))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_004.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.85736736, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.920293307, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::set_progress", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 9, - "column": 5 - }, - "end": { - "line": 13, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 9 - }, - "end": { - "line": 12, - "column": 48 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_11_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.604811079, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.069185654, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::new())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_005.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5056760599999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.010533647, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "WorkerId::random", - "return_type": "-> Self", - "span": { - "start": { - "line": 62, - "column": 5 - }, - "end": { - "line": 65, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 64, - "column": 9 - }, - "end": { - "line": 64, - "column": 38 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__id.rs_line_64_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.855264534, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.055872265, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::generic", - "return_type": "-> Self", - "span": { - "start": { - "line": 108, - "column": 5 - }, - "end": { - "line": 110, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 9 - }, - "end": { - "line": 109, - "column": 46 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_109_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252372333, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_until_start", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 63, - "column": 5 - }, - "end": { - "line": 70, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 69, - "column": 9 - }, - "end": { - "line": 69, - "column": 57 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_69_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201079728, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201099557, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 28, - "column": 23 - }, - "end": { - "line": 28, - "column": 25 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_28_col_23.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.45366821, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 10.434928527, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::commit_batch", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 42, - "column": 5 - }, - "end": { - "line": 44, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 43, - "column": 9 - }, - "end": { - "line": 43, - "column": 67 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_43_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.504731952, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.199682244, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_one", - "return_type": "-> Result", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 276, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 249, - "column": 9 - }, - "end": { - "line": 275, - "column": 17 - } - }, - "replacement": "Ok(true)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_249_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.705905763, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.748118577, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 17 - }, - "end": { - "line": 29, - "column": 19 - } - }, - "replacement": "||", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_29_col_17.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 2.156999035, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.010231481, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "JobId::random", - "return_type": "-> Self", - "span": { - "start": { - "line": 41, - "column": 5 - }, - "end": { - "line": 44, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 43, - "column": 9 - }, - "end": { - "line": 43, - "column": 38 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__id.rs_line_43_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.455768018, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.315479526, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from(Default::default())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_005.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201916918, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_170_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.402308008, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 246, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 245, - "column": 9 - }, - "end": { - "line": 245, - "column": 31 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_245_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.25139146, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": ">::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 62, - "column": 5 - }, - "end": { - "line": 64, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 63, - "column": 9 - }, - "end": { - "line": 63, - "column": 24 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__runner.rs_line_63_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.254792241, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.243840413, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new(Default::default())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_005.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302426442, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": ">::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 90, - "column": 5 - }, - "end": { - "line": 92, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 91, - "column": 9 - }, - "end": { - "line": 91, - "column": 28 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__runner.rs_line_91_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.405655466, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.510824781, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 109, - "column": 1 - }, - "end": { - "line": 118, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 112, - "column": 14 - }, - "end": { - "line": 112, - "column": 16 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_112_col_14.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.855923403, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.510172907, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_id", - "return_type": "-> String", - "span": { - "start": { - "line": 6, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 11, - "column": 19 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_7_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.9060421440000002, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 0.2520469, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_170_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.501948947, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, None))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_006.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.955623617, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.396146826, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "::clone", - "return_type": "-> Self", - "span": { - "start": { - "line": 207, - "column": 5 - }, - "end": { - "line": 214, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 208, - "column": 9 - }, - "end": { - "line": 213, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_208_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352308204, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 16, - "column": 21 - }, - "end": { - "line": 16, - "column": 23 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_16_col_21.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.705529987, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.363697134, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_progress", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 19, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 17, - "column": 9 - }, - "end": { - "line": 18, - "column": 50 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_17_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.40547563, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.295068901, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "host_from_url", - "return_type": "-> String", - "span": { - "start": { - "line": 10, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 5 - }, - "end": { - "line": 11, - "column": 74 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_11_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.456217786, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.260105747, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 322, - "column": 5 - }, - "end": { - "line": 327, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 326, - "column": 9 - }, - "end": { - "line": 326, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_326_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.555677379, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.352497158, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_163_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.452352631, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 359, - "column": 24 - }, - "end": { - "line": 359, - "column": 25 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_359_col_24_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.555147619, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.199747776, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 33 - }, - "end": { - "line": 23, - "column": 35 - } - }, - "replacement": "&&", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_23_col_33.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.30438685, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.159020436, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_callbacks", - "return_type": "-> Batch", - "span": { - "start": { - "line": 197, - "column": 5 - }, - "end": { - "line": 203, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 199, - "column": 9 - }, - "end": { - "line": 202, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_199_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252251377, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new(Ok(0))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352021459, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_163_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.401870019, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_006.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251823057, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_006.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302860305, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "get_env_url", - "return_type": "-> String", - "span": { - "start": { - "line": 4, - "column": 1 - }, - "end": { - "line": 8, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 5, - "column": 5 - }, - "end": { - "line": 7, - "column": 73 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_5_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.205201091, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.461142564, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::default", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 77, - "column": 5 - }, - "end": { - "line": 88, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 83, - "column": 9 - }, - "end": { - "line": 87, - "column": 53 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_83_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201241739, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.20117996, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::generic_with_backtrace", - "return_type": "-> Self", - "span": { - "start": { - "line": 119, - "column": 5 - }, - "end": { - "line": 132, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 123, - "column": 9 - }, - "end": { - "line": 131, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_123_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251741363, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_007.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251158488, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_008.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251503548, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201183342, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 401, - "column": 5 - }, - "end": { - "line": 403, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 402, - "column": 9 - }, - "end": { - "line": 402, - "column": 50 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_402_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.855788848, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.298564348, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::connect_again", - "return_type": "-> Result", - "span": { - "start": { - "line": 158, - "column": 5 - }, - "end": { - "line": 161, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 159, - "column": 9 - }, - "end": { - "line": 160, - "column": 48 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_159_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.301864285, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::add", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 27, - "column": 9 - }, - "end": { - "line": 28, - "column": 47 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.6059107080000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.144802582, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.20137799, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(String::new(), String::new())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_007.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.605230126, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.111388832, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_success_callback", - "return_type": "-> Batch", - "span": { - "start": { - "line": 183, - "column": 5 - }, - "end": { - "line": 188, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 185, - "column": 9 - }, - "end": { - "line": 187, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_185_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302029857, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 28, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 27, - "column": 10 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__cmd.rs_line_15_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.605873764, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.315446549, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 33, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 32, - "column": 9 - }, - "end": { - "line": 32, - "column": 16 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_32_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251384727, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::failure", - "return_type": "-> &Option", - "span": { - "start": { - "line": 258, - "column": 5 - }, - "end": { - "line": 261, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 260, - "column": 9 - }, - "end": { - "line": 260, - "column": 22 - } - }, - "replacement": "&Some(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_260_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.151110432, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 190, - "column": 63 - }, - "end": { - "line": 190, - "column": 64 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_190_col_63.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.556038607, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.314801298, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 172, - "column": 29 - }, - "end": { - "line": 172, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_172_col_29_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.556597106, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.213796743, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "write_command_and_await_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 271, - "column": 1 - }, - "end": { - "line": 280, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 5 - }, - "end": { - "line": 279, - "column": 26 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_278_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.556997547, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.567472303, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "::fmt", - "return_type": "-> std::fmt::Result", - "span": { - "start": { - "line": 30, - "column": 5 - }, - "end": { - "line": 38, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 9 - }, - "end": { - "line": 37, - "column": 27 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_31_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.706742853, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.114497311, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_on_all_workers", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 185, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 186, - "column": 9 - }, - "end": { - "line": 220, - "column": 15 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_186_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.8051316, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.356577658, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::workers", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 57, - "column": 5 - }, - "end": { - "line": 63, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 61, - "column": 9 - }, - "end": { - "line": 62, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_61_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 2.006071224, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.711211359, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::connect_with", - "return_type": "-> Result, E>, Error>", - "span": { - "start": { - "line": 93, - "column": 5 - }, - "end": { - "line": 104, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 99, - "column": 9 - }, - "end": { - "line": 103, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_99_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.301965886, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_002.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.604729525, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.19577821, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 62, - "column": 33 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_37_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.806379289, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.4124350740000002, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_cuurently_running", - "return_type": "-> Option", - "span": { - "start": { - "line": 18, - "column": 5 - }, - "end": { - "line": 20, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 9 - }, - "end": { - "line": 19, - "column": 32 - } - }, - "replacement": "Some(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_19_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.907124447, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.503547761, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252161048, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 238, - "column": 5 - }, - "end": { - "line": 240, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 239, - "column": 9 - }, - "end": { - "line": 239, - "column": 43 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_239_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201197409, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 232, - "column": 25 - }, - "end": { - "line": 232, - "column": 27 - } - }, - "replacement": "-=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_232_col_25_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.453557817, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.439631156, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_009.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.301880567, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_wid", - "return_type": "-> String", - "span": { - "start": { - "line": 18, - "column": 1 - }, - "end": { - "line": 20, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 5 - }, - "end": { - "line": 19, - "column": 36 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_19_col_5.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5043675909999998, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.293305502, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::id", - "return_type": "-> &JobId", - "span": { - "start": { - "line": 243, - "column": 5 - }, - "end": { - "line": 246, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 245, - "column": 9 - }, - "end": { - "line": 245, - "column": 18 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_245_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.202258207, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 93, - "column": 70 - }, - "end": { - "line": 93, - "column": 72 - } - }, - "replacement": "<", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_93_col_70.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.354904112, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.36142122, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 38 - }, - "end": { - "line": 110, - "column": 39 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_110_col_38.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.105616823, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.192458147, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 52 - }, - "end": { - "line": 109, - "column": 53 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_109_col_52_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.953921651, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.298114027, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 242, - "column": 5 - }, - "end": { - "line": 244, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 243, - "column": 9 - }, - "end": { - "line": 243, - "column": 16 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_243_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252622574, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 143, - "column": 5 - }, - "end": { - "line": 145, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 144, - "column": 9 - }, - "end": { - "line": 144, - "column": 43 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_144_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.4542611509999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.595916888, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 118, - "column": 34 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_15_col_5.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.455230883, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.250748308, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_wid", - "return_type": "-> String", - "span": { - "start": { - "line": 18, - "column": 1 - }, - "end": { - "line": 20, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 5 - }, - "end": { - "line": 19, - "column": 36 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_19_col_5_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.6057901449999998, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.30046875, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_008.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.7062886449999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.346623997, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 20, - "column": 9 - }, - "end": { - "line": 76, - "column": 10 - } - }, - "replacement": "Ok(false)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_20_col_9_001.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.706164258, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.026395301, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_009.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.907063354, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.392763469, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251844657, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new(Default::default())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_007.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302097751, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::new())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_010.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.504454755, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.293382369, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::reconnect", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 163, - "column": 5 - }, - "end": { - "line": 166, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 164, - "column": 9 - }, - "end": { - "line": 165, - "column": 26 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_164_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 2.15714535, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.341532132, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/mod.rs", - "function": { - "function_name": ">::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 52, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 50, - "column": 9 - }, - "end": { - "line": 51, - "column": 30 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__mod.rs_line_50_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251998439, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::from_iter([Default::default()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.20153055, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "parse_provided_or_from_env", - "return_type": "-> Result", - "span": { - "start": { - "line": 30, - "column": 1 - }, - "end": { - "line": 32, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 31, - "column": 45 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_31_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251778483, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_010.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252258032, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 28 - }, - "end": { - "line": 78, - "column": 30 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_78_col_28.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.7551584409999998, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.290543167, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 262, - "column": 5 - }, - "end": { - "line": 264, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 263, - "column": 9 - }, - "end": { - "line": 263, - "column": 23 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_263_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251798513, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new(Ok(1))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_004.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.452548312, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251785663, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_008.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251456402, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::reconnect", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 147, - "column": 5 - }, - "end": { - "line": 149, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 9 - }, - "end": { - "line": 148, - "column": 33 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_148_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.554470255, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.241187355, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_until_success", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 72, - "column": 5 - }, - "end": { - "line": 80, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 79, - "column": 9 - }, - "end": { - "line": 79, - "column": 59 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_79_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201517636, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::kind", - "return_type": "-> &str", - "span": { - "start": { - "line": 248, - "column": 5 - }, - "end": { - "line": 251, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 250, - "column": 19 - } - }, - "replacement": "\"xyzzy\"", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_250_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.304152711, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.511396576, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_batch_status", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 25, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 24, - "column": 50 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_23_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.655651206, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.440329816, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252151642, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.505647367, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.307499759, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Hello::set_password", - "return_type": "", - "span": { - "start": { - "line": 214, - "column": 5 - }, - "end": { - "line": 224, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 215, - "column": 9 - }, - "end": { - "line": 223, - "column": 58 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_215_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 2.507087986, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.608705273, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/mod.rs", - "function": { - "function_name": "::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 38, - "column": 5 - }, - "end": { - "line": 41, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 39, - "column": 9 - }, - "end": { - "line": 40, - "column": 41 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__mod.rs_line_39_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.452308103, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 190, - "column": 63 - }, - "end": { - "line": 190, - "column": 64 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_190_col_63_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 2.658385924, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.314324971, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::add", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 27, - "column": 9 - }, - "end": { - "line": 28, - "column": 47 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.6570846540000002, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.194763393, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_011.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302138703, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_009.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.301898489, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_146_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.45250706, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::from(Ok(())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_302_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251478334, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 250, - "column": 5 - }, - "end": { - "line": 252, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 251, - "column": 9 - }, - "end": { - "line": 251, - "column": 29 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_251_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251826719, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::save_last_result", - "return_type": "", - "span": { - "start": { - "line": 22, - "column": 5 - }, - "end": { - "line": 24, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 23, - "column": 41 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_23_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.705318279, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.339355037, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 27, - "column": 12 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_15_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201966329, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_011.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.706001791, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.205656911, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_job", - "return_type": "-> Result<(), Failed>", - "span": { - "start": { - "line": 169, - "column": 5 - }, - "end": { - "line": 175, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 174, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_170_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.856561541, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.414635221, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 269, - "column": 5 - }, - "end": { - "line": 274, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 270, - "column": 9 - }, - "end": { - "line": 273, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_270_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.856686791, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.444179337, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "Progress::update_builder", - "return_type": "-> ProgressUpdateBuilder", - "span": { - "start": { - "line": 152, - "column": 5 - }, - "end": { - "line": 155, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 154, - "column": 9 - }, - "end": { - "line": 154, - "column": 53 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_154_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.2524546, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 206, - "column": 21 - }, - "end": { - "line": 206, - "column": 23 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_206_col_21.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.855491589, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.464872745, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_running", - "return_type": "", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 49, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 48, - "column": 9 - }, - "end": { - "line": 48, - "column": 77 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_48_col_9.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.656017475, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.013855814, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_failure", - "return_type": "", - "span": { - "start": { - "line": 58, - "column": 5 - }, - "end": { - "line": 63, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 59, - "column": 9 - }, - "end": { - "line": 62, - "column": 47 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_59_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.455138074, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.391664874, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::id", - "return_type": "-> &BatchId", - "span": { - "start": { - "line": 12, - "column": 5 - }, - "end": { - "line": 15, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 14, - "column": 9 - }, - "end": { - "line": 14, - "column": 18 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_14_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.20151628, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_jid", - "return_type": "-> String", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 16, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 15, - "column": 33 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_15_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.604632574, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.363491504, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 63 - }, - "end": { - "line": 31, - "column": 65 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_31_col_63.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.354749613, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 70.043526083, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::add_to_custom_data", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 175, - "column": 5 - }, - "end": { - "line": 184, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 181, - "column": 9 - }, - "end": { - "line": 183, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_181_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251557587, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.202086783, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_010.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251325719, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_for", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 61, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 60, - "column": 9 - }, - "end": { - "line": 60, - "column": 52 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_60_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201772753, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from(Ok(0))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_005.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.401971375, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 38 - }, - "end": { - "line": 110, - "column": 39 - } - }, - "replacement": "%", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_110_col_38_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.455160566, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.293135193, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::wid", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 41, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 45, - "column": 9 - }, - "end": { - "line": 46, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_45_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.755340644, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.588162111, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 39, - "column": 41 - }, - "end": { - "line": 39, - "column": 43 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_39_col_41.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 2.155873598, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.510591063, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::for_worker", - "return_type": "-> Result", - "span": { - "start": { - "line": 284, - "column": 5 - }, - "end": { - "line": 291, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 285, - "column": 9 - }, - "end": { - "line": 290, - "column": 11 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_285_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251493987, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_011.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252043759, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::build", - "return_type": "-> Job", - "span": { - "start": { - "line": 186, - "column": 5 - }, - "end": { - "line": 199, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 9 - }, - "end": { - "line": 198, - "column": 58 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_194_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201251712, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_004.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201235875, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::args", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 165, - "column": 5 - }, - "end": { - "line": 173, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 171, - "column": 9 - }, - "end": { - "line": 172, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_171_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.20100427, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_last_result", - "return_type": "-> Option>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 15, - "column": 36 - } - }, - "replacement": "None", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_15_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.705295672, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.347085881, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_one", - "return_type": "-> Result", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 276, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 249, - "column": 9 - }, - "end": { - "line": 275, - "column": 17 - } - }, - "replacement": "Ok(false)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_249_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 2.10665422, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.683869485, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 36 - }, - "end": { - "line": 109, - "column": 37 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_109_col_36_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 2.056719105, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.538904595, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_004.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251558191, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdateBuilder::build", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 57, - "column": 5 - }, - "end": { - "line": 61, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 59, - "column": 9 - }, - "end": { - "line": 60, - "column": 80 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_59_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.351668621, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from_iter([Ok(0)])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_006.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.453122517, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": "::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 75, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 76, - "column": 9 - }, - "end": { - "line": 76, - "column": 24 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__runner.rs_line_76_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.6047173319999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.938721616, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::failure", - "return_type": "-> &Option", - "span": { - "start": { - "line": 258, - "column": 5 - }, - "end": { - "line": 261, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 260, - "column": 9 - }, - "end": { - "line": 260, - "column": 22 - } - }, - "replacement": "&None", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_260_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.505563418, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.599044704, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::register", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 65, - "column": 5 - }, - "end": { - "line": 78, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 76, - "column": 9 - }, - "end": { - "line": 77, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_76_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.855959025, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.5606548609999997, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 12, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 8, - "column": 9 - }, - "end": { - "line": 11, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__cmd.rs_line_8_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.906553269, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.491312489, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "::deref_mut", - "return_type": "-> &mut Self::Target", - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 39, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 38, - "column": 20 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_38_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.555494046, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.658571322, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_failure_to_server", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 177, - "column": 5 - }, - "end": { - "line": 179, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 178, - "column": 9 - }, - "end": { - "line": 178, - "column": 47 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_178_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.855465597, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.494296401, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_012.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352301429, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from(Default::default())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_012.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252347106, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_success", - "return_type": "", - "span": { - "start": { - "line": 51, - "column": 5 - }, - "end": { - "line": 56, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 55, - "column": 40 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_52_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.654607894, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.389534298, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 162, - "column": 5 - }, - "end": { - "line": 166, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 165, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_163_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.655546057, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 13.543105624, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::maybe_bid", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 52, - "column": 5 - }, - "end": { - "line": 68, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 67, - "column": 10 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_53_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.7056344860000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.54775349, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::new(Ok(())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_302_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251711206, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::from_iter([Ok(())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_302_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.25204366, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdate::builder", - "return_type": "-> ProgressUpdateBuilder", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 53, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 52, - "column": 40 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_52_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201070811, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 305, - "column": 57 - }, - "end": { - "line": 305, - "column": 59 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_305_col_57.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.605110781, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.559204366, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 115, - "column": 5 - }, - "end": { - "line": 124, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 116, - "column": 9 - }, - "end": { - "line": 123, - "column": 72 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_116_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.30217435, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 49 - }, - "end": { - "line": 194, - "column": 50 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_194_col_49_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.856000704, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.547397929, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::build", - "return_type": "-> Batch", - "span": { - "start": { - "line": 168, - "column": 5 - }, - "end": { - "line": 170, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 169, - "column": 9 - }, - "end": { - "line": 169, - "column": 65 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_169_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251512265, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 236, - "column": 5 - }, - "end": { - "line": 238, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 237, - "column": 9 - }, - "end": { - "line": 237, - "column": 16 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_237_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302195111, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::info", - "return_type": "-> Result", - "span": { - "start": { - "line": 362, - "column": 5 - }, - "end": { - "line": 371, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 366, - "column": 9 - }, - "end": { - "line": 370, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_366_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.9565609130000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 14.597896621, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_302_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.301888907, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_146_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.451565732, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_jid", - "return_type": "-> String", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 16, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 15, - "column": 33 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_15_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.7055018400000002, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - }, - { - "phase": "Test", - "duration": 3.36161586, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-jIMFg4.tmp/Cargo.toml", - "--all-features" - ] - } - ] - } - ], - "total_mutants": 277, - "missed": 70, - "caught": 66, - "timeout": 9, - "unviable": 132, - "success": 0, - "failure": 0 -} \ No newline at end of file diff --git a/mutants.out.old/timeout.txt b/mutants.out.old/timeout.txt deleted file mode 100644 index 92806685..00000000 --- a/mutants.out.old/timeout.txt +++ /dev/null @@ -1,9 +0,0 @@ -src/worker/mod.rs:228:9: replace Worker::force_fail_all_workers -> usize with 0 -src/worker/mod.rs:358:24: replace != with == in Worker::run -src/worker/mod.rs:232:25: replace += with *= in Worker::force_fail_all_workers -src/worker/state.rs:19:9: replace WorkerState::take_cuurently_running -> Option with None -src/worker/health.rs:20:9: replace Worker::listen_for_heartbeats -> Result with Ok(true) -src/worker/health.rs:29:17: replace && with || in Worker::listen_for_heartbeats -src/worker/health.rs:20:9: replace Worker::listen_for_heartbeats -> Result with Ok(false) -src/worker/state.rs:48:9: replace WorkerStatesRegistry::register_running with () -src/worker/health.rs:31:63: replace == with != in Worker::listen_for_heartbeats diff --git a/mutants.out.old/unviable.txt b/mutants.out.old/unviable.txt deleted file mode 100644 index db20191f..00000000 --- a/mutants.out.old/unviable.txt +++ /dev/null @@ -1,132 +0,0 @@ -src/proto/single/ent/progress.rs:44:9: replace ProgressUpdate::set -> ProgressUpdate with Default::default() -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new())) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new()) -src/proto/batch/mod.rs:179:9: replace BatchBuilder::description -> Self with Default::default() -src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::from_iter([Ok(())]) -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) -src/proto/single/resp.rs:138:5: replace read -> Result with Ok(Default::default()) -src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::new()) -src/proto/single/ent/mod.rs:46:9: replace JobBuilder::expires_in -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/ent/progress.rs:146:9: replace Progress::update_percent -> ProgressUpdate with Default::default() -src/tls.rs:136:9: replace >::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) -src/proto/batch/mod.rs:192:9: replace BatchBuilder::with_complete_callback -> Batch with Default::default() -src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::from_iter([Ok(())]) -src/proto/client/mod.rs:286:9: replace Client::fetch -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) -src/proto/client/mod.rs:293:9: replace Client::heartbeat -> Result with Ok(Default::default()) -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from(Ok(1)) -src/proto/single/resp.rs:37:5: replace read_json -> Result, Error> with Ok(Some(Default::default())) -src/proto/single/ent/mod.rs:46:36: replace + with * in JobBuilder::expires_in -src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::new() -src/proto/single/mod.rs:239:9: replace Job::on_queue -> Self with Default::default() -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) -src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::new() -src/proto/single/ent/mod.rs:25:9: replace JobBuilder::expires_at -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) -src/tls.rs:52:9: replace TlsStream::connect -> Result with Ok(Default::default()) -src/proto/single/resp.rs:8:5: replace bad -> error::Protocol with Default::default() -src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) -src/proto/client/mod.rs:409:9: replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) -src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) -src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::new(Ok(())) -src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::new(Default::default())) -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new())) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) -src/proto/single/cmd.rs:174:9: replace >::from -> Self with Default::default() -src/proto/single/resp.rs:98:5: replace read_hi -> Result with Ok(Default::default()) -src/proto/single/mod.rs:231:9: replace Job::builder -> JobBuilder with Default::default() -src/proto/client/ent.rs:23:9: replace Client::get_batch_status -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) -src/proto/batch/mod.rs:163:9: replace Batch::builder -> BatchBuilder with Default::default() -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) -src/proto/client/ent.rs:17:9: replace Client::get_progress -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::from(Default::default())) -src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::from(Ok(())) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) -src/worker/builder.rs:113:9: replace WorkerBuilder::connect -> Result, E>, Error> with Ok(Default::default()) -src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) -src/tls.rs:63:9: replace TlsStream::with_connector -> Result with Ok(Default::default()) -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(1)]) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) -src/tls.rs:130:9: replace >::deref -> &Self::Target with &Default::default() -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new() -src/proto/single/cmd.rs:109:9: replace Fail::generic -> Self with Default::default() -src/proto/single/ent/mod.rs:69:9: replace JobBuilder::unique_until_start -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from(Default::default()))) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) -src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::new(Ok(())) -src/proto/single/resp.rs:245:9: replace ::from -> Self with Default::default() -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) -src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::from(Ok(())) -src/proto/batch/mod.rs:208:9: replace ::clone -> Self with Default::default() -src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::from_iter([Ok(())]) -src/proto/batch/mod.rs:199:9: replace BatchBuilder::with_callbacks -> Batch with Default::default() -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new(Ok(0)) -src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::from(Ok(())) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new())) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) -src/tls.rs:83:9: replace TlsStream::default -> io::Result with Ok(Default::default()) -src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) -src/proto/single/cmd.rs:123:9: replace Fail::generic_with_backtrace -> Self with Default::default() -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new())) -src/proto/client/mod.rs:159:9: replace Client::connect_again -> Result with Ok(Default::default()) -src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) -src/proto/batch/mod.rs:185:9: replace BatchBuilder::with_success_callback -> Batch with Default::default() -src/worker/state.rs:32:9: replace ::deref -> &Self::Target with &Default::default() -src/proto/single/mod.rs:260:9: replace Job::failure -> &Option with &Some(Default::default()) -src/worker/builder.rs:99:9: replace WorkerBuilder::connect_with -> Result, E>, Error> with Ok(Default::default()) -src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new()) -src/proto/single/resp.rs:239:9: replace ::from -> Self with Default::default() -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new()) -src/proto/single/mod.rs:245:9: replace Job::id -> &JobId with &Default::default() -src/proto/single/cmd.rs:243:9: replace ::from -> Self with Default::default() -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from_iter([Default::default()]))) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) -src/proto/mod.rs:50:9: replace >::reconnect -> io::Result with Ok(Default::default()) -src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::from_iter([Default::default()])) -src/proto/utils.rs:31:5: replace parse_provided_or_from_env -> Result with Ok(Default::default()) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) -src/proto/single/cmd.rs:263:9: replace ::from -> Self with Default::default() -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new(Ok(1)) -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new(Default::default()))) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) -src/proto/single/ent/mod.rs:79:9: replace JobBuilder::unique_until_success -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new())) -src/proto/mod.rs:39:9: replace ::reconnect -> io::Result with Ok(Default::default()) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new())) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new())) -src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::new() -src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from(Ok(()))) -src/proto/single/resp.rs:251:9: replace ::from -> Self with Default::default() -src/proto/utils.rs:15:5: replace url_parse -> Result with Ok(Default::default()) -src/proto/single/ent/progress.rs:154:9: replace Progress::update_builder -> ProgressUpdateBuilder with Default::default() -src/proto/batch/handle.rs:14:9: replace BatchHandle<'a, S>::id -> &BatchId with &Default::default() -src/proto/single/mod.rs:181:9: replace JobBuilder::add_to_custom_data -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new()) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) -src/proto/single/ent/mod.rs:60:9: replace JobBuilder::unique_for -> &mut Self with Box::leak(Box::new(Default::default())) -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from(Ok(0)) -src/worker/mod.rs:285:9: replace Worker::for_worker -> Result with Ok(Default::default()) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) -src/proto/single/mod.rs:194:9: replace JobBuilder::build -> Job with Default::default() -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) -src/proto/single/mod.rs:171:9: replace JobBuilder::args -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) -src/proto/single/ent/progress.rs:59:9: replace ProgressUpdateBuilder::build -> ProgressUpdate with Default::default() -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(0)]) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) -src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new(Ok(()))) -src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from_iter([Ok(())])) -src/proto/single/ent/progress.rs:52:9: replace ProgressUpdate::builder -> ProgressUpdateBuilder with Default::default() -src/tls.rs:116:9: replace >::reconnect -> io::Result with Ok(Default::default()) -src/proto/batch/mod.rs:169:9: replace BatchBuilder::build -> Batch with Default::default() -src/proto/single/cmd.rs:237:9: replace ::deref -> &Self::Target with &Default::default() -src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new()) -src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::new(Ok(())) diff --git a/mutants.out/caught.txt b/mutants.out/caught.txt deleted file mode 100644 index 7f33a967..00000000 --- a/mutants.out/caught.txt +++ /dev/null @@ -1,131 +0,0 @@ -src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::new(Ok(())) -src/proto/single/cmd.rs:163:9: replace >::issue -> Result<(), Error> with Ok(()) -src/tls.rs:130:9: replace >::deref -> &Self::Target with &Default::default() -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) -src/tls.rs:136:9: replace >::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) -src/tls.rs:52:9: replace TlsStream::connect -> Result with Ok(Default::default()) -src/worker/builder.rs:76:9: replace WorkerBuilder::register -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/resp.rs:39:41: replace == with != in read_json -src/worker/runner.rs:91:9: replace >::run -> Result<(), E> with Ok(()) -src/proto/batch/mod.rs:192:9: replace BatchBuilder::with_complete_callback -> Batch with Default::default() -src/proto/batch/mod.rs:163:9: replace Batch::builder -> BatchBuilder with Default::default() -src/proto/single/ent/progress.rs:154:9: replace Progress::update_builder -> ProgressUpdateBuilder with Default::default() -src/proto/single/utils.rs:7:5: replace gen_random_id -> String with String::new() -src/proto/single/resp.rs:148:29: replace - with + in read -src/proto/client/ent.rs:23:9: replace Client::get_batch_status -> Result, Error> with Ok(Some(Default::default())) -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new())) -src/worker/builder.rs:61:9: replace WorkerBuilder::workers -> &mut Self with Box::leak(Box::new(Default::default())) -src/worker/mod.rs:228:9: replace Worker::force_fail_all_workers -> usize with 1 -src/proto/single/resp.rs:160:29: replace - with + in read -src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) -src/proto/single/cmd.rs:144:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:229:9: replace Client::init -> Result<(), Error> with Ok(()) -src/worker/builder.rs:45:9: replace WorkerBuilder::wid -> &mut Self with Box::leak(Box::new(Default::default())) -src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::new() -src/proto/single/resp.rs:148:29: replace - with / in read -src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) -src/worker/mod.rs:249:9: replace Worker::run_one -> Result with Ok(false) -src/worker/mod.rs:328:9: replace Worker::run -> Result with Ok(0) -src/proto/utils.rs:11:5: replace host_from_url -> String with String::new() -src/worker/mod.rs:305:57: replace == with != in Worker::spawn_worker -src/proto/single/mod.rs:255:9: replace Job::args -> &[serde_json::Value] with Vec::leak(Vec::new()) -src/worker/builder.rs:53:9: replace WorkerBuilder::labels -> &mut Self with Box::leak(Box::new(Default::default())) -src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::from(Ok(())) -src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::new(Ok(())) -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from(Ok(1)) -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) -src/proto/batch/mod.rs:199:9: replace BatchBuilder::with_callbacks -> Batch with Default::default() -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(1)]) -src/worker/mod.rs:249:9: replace Worker::run_one -> Result with Ok(true) -src/proto/single/ent/mod.rs:25:9: replace JobBuilder::expires_at -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/cmd.rs:250:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/utils.rs:5:5: replace get_env_url -> String with String::new() -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new() -src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::new() -src/proto/single/resp.rs:206:21: replace == with != in read -src/proto/batch/mod.rs:169:9: replace BatchBuilder::build -> Batch with Default::default() -src/proto/single/resp.rs:110:5: replace read_ok -> Result<(), Error> with Ok(()) -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new(Ok(0)) -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new(Default::default()))) -src/proto/single/ent/mod.rs:69:9: replace JobBuilder::unique_until_start -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) -src/proto/single/ent/progress.rs:59:9: replace ProgressUpdateBuilder::build -> ProgressUpdate with Default::default() -src/proto/single/cmd.rs:33:5: replace write_queues -> Result<(), Error> with Ok(()) -src/proto/single/ent/progress.rs:146:9: replace Progress::update_percent -> ProgressUpdate with Default::default() -src/proto/single/id.rs:43:9: replace JobId::random -> Self with Default::default() -src/proto/utils.rs:16:21: replace != with == in url_parse -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) -src/worker/mod.rs:232:25: replace += with -= in Worker::force_fail_all_workers -src/worker/health.rs:41:41: replace < with == in Worker::listen_for_heartbeats -src/proto/client/ent.rs:17:9: replace Client::get_progress -> Result, Error> with Ok(Some(Default::default())) -src/proto/single/utils.rs:7:5: replace gen_random_id -> String with "xyzzy".into() -src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new()) -src/proto/batch/mod.rs:179:9: replace BatchBuilder::description -> Self with Default::default() -src/proto/client/mod.rs:389:9: replace Client::queue_resume -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:409:9: replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(None) -src/proto/single/ent/mod.rs:79:9: replace JobBuilder::unique_until_success -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/resp.rs:172:29: replace - with + in read -src/proto/batch/handle.rs:14:9: replace BatchHandle<'a, S>::id -> &BatchId with &Default::default() -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from(Default::default()))) -src/proto/batch/mod.rs:208:9: replace ::clone -> Self with Default::default() -src/proto/single/resp.rs:160:29: replace - with / in read -src/worker/state.rs:66:9: replace WorkerStatesRegistry::reset with () -src/proto/single/mod.rs:250:9: replace Job::kind -> &str with "xyzzy" -src/proto/single/utils.rs:15:5: replace gen_random_jid -> String with String::new() -src/proto/single/mod.rs:255:9: replace Job::args -> &[serde_json::Value] with Vec::leak(vec![Default::default()]) -src/proto/single/ent/mod.rs:46:36: replace + with * in JobBuilder::expires_in -src/proto/client/mod.rs:23:12: replace != with == in check_protocols_match -src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::from(Ok(())) -src/proto/single/resp.rs:112:14: replace == with != in read_ok -src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::from_iter([Ok(())]) -src/proto/single/resp.rs:47:39: replace == with != in read_json -src/worker/health.rs:41:41: replace < with > in Worker::listen_for_heartbeats -src/proto/single/ent/progress.rs:44:9: replace ProgressUpdate::set -> ProgressUpdate with Default::default() -src/worker/mod.rs:170:9: replace Worker::run_job -> Result<(), Failed> with Ok(()) -src/proto/client/mod.rs:286:9: replace Client::fetch -> Result, Error> with Ok(None) -src/proto/single/utils.rs:15:5: replace gen_random_jid -> String with "xyzzy".into() -src/worker/builder.rs:89:9: replace WorkerBuilder::register_runner -> &mut Self with Box::leak(Box::new(Default::default())) -src/worker/mod.rs:182:9: replace Worker::report_success_to_server -> Result<(), Error> with Ok(()) -src/proto/single/resp.rs:172:29: replace - with / in read -src/proto/single/mod.rs:250:9: replace Job::kind -> &str with "" -src/proto/utils.rs:11:5: replace host_from_url -> String with "xyzzy".into() -src/worker/health.rs:28:23: replace == with != in Worker::listen_for_heartbeats -src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::from_iter([Ok(())]) -src/proto/single/mod.rs:278:5: replace write_command_and_await_ok -> Result<(), Error> with Ok(()) -src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::from(Ok(())) -src/proto/single/ent/mod.rs:46:9: replace JobBuilder::expires_in -> &mut Self with Box::leak(Box::new(Default::default())) -src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::new() -src/proto/single/resp.rs:190:63: replace - with / in read -src/tls.rs:63:9: replace TlsStream::with_connector -> Result with Ok(Default::default()) -src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::from_iter([Ok(())]) -src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::new(Ok(())) -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(0)]) -src/worker/builder.rs:37:9: replace WorkerBuilder::hostname -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from_iter([Default::default()]))) -src/proto/single/resp.rs:37:5: replace read_json -> Result, Error> with Ok(None) -src/proto/client/mod.rs:326:9: replace Client::enqueue -> Result<(), Error> with Ok(()) -src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) -src/proto/single/cmd.rs:298:9: replace >::issue -> Result<(), Error> with Ok(()) -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) -src/proto/client/mod.rs:174:9: replace >::drop with () -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new(Ok(1)) -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new())) -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new())) -src/tls.rs:116:9: replace >::reconnect -> io::Result with Ok(Default::default()) -src/worker/state.rs:19:9: replace WorkerState::take_cuurently_running -> Option with Some(Default::default()) -src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from(Ok(0)) -src/tls.rs:83:9: replace TlsStream::default -> io::Result with Ok(Default::default()) -src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) -src/proto/single/resp.rs:190:63: replace - with + in read -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) -src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) -src/proto/single/cmd.rs:215:9: replace Hello::set_password with () -src/proto/batch/mod.rs:185:9: replace BatchBuilder::with_success_callback -> Batch with Default::default() -src/proto/client/mod.rs:378:9: replace Client::queue_pause -> Result<(), Error> with Ok(()) -src/worker/mod.rs:328:9: replace Worker::run -> Result with Ok(1) -src/proto/utils.rs:5:5: replace get_env_url -> String with "xyzzy".into() -src/proto/single/ent/progress.rs:52:9: replace ProgressUpdate::builder -> ProgressUpdateBuilder with Default::default() -src/proto/single/ent/mod.rs:60:9: replace JobBuilder::unique_for -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/mod.rs:267:5: replace write_command -> Result<(), Error> with Ok(()) -src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new()) diff --git a/mutants.out/debug.log b/mutants.out/debug.log deleted file mode 100644 index cfa0c4fb..00000000 --- a/mutants.out/debug.log +++ /dev/null @@ -1,1865 +0,0 @@ - 0.127639683s DEBUG cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:52: all_packages=[Package { name: "faktory", relative_manifest_path: "Cargo.toml" }] - 0.128362656s DEBUG globset: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/globset-0.4.14/src/lib.rs:448: glob converted to regex: Glob { glob: "**/perf.*", re: "(?-u)^(?:/?|.*/)perf\\.[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('p'), Literal('e'), Literal('r'), Literal('f'), Literal('.'), ZeroOrMore]) } - 0.128379000s DEBUG globset: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/globset-0.4.14/src/lib.rs:448: glob converted to regex: Glob { glob: "**/mutants.*", re: "(?-u)^(?:/?|.*/)mutants\\.[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('m'), Literal('u'), Literal('t'), Literal('a'), Literal('n'), Literal('t'), Literal('s'), Literal('.'), ZeroOrMore]) } - 0.128385916s DEBUG globset: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/globset-0.4.14/src/lib.rs:453: built glob set; 1 literals, 1 basenames, 0 extensions, 0 prefixes, 0 suffixes, 1 required extensions, 2 regexes - 0.128649302s DEBUG ignore::walk: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ignore-0.4.22/src/walk.rs:1799: ignoring /home/pavel/Public/faktory-rs/target: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("/home/pavel/Public/faktory-rs/.gitignore"), original: "/target/", actual: "target", is_whitelist: false, is_only_dir: true }))) - 0.129958170s DEBUG ignore::walk: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ignore-0.4.22/src/walk.rs:1799: ignoring /home/pavel/Public/faktory-rs/mutants.out.old: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("/home/pavel/Public/faktory-rs/.gitignore"), original: "mutants.*", actual: "**/mutants.*", is_whitelist: false, is_only_dir: false }))) - 0.130286604s DEBUG ignore::walk: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ignore-0.4.22/src/walk.rs:1799: ignoring /home/pavel/Public/faktory-rs/mutants.out: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("/home/pavel/Public/faktory-rs/.gitignore"), original: "mutants.*", actual: "**/mutants.*", is_whitelist: false, is_only_dir: false }))) - 0.130316924s DEBUG ignore::walk: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ignore-0.4.22/src/walk.rs:1799: ignoring /home/pavel/Public/faktory-rs/.vscode: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("/home/pavel/Public/faktory-rs/.gitignore"), original: ".vscode", actual: "**/.vscode", is_whitelist: false, is_only_dir: false }))) - 0.131260677s DEBUG cargo_mutants::copy_tree: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/copy_tree.rs:100: Copied source tree total_bytes=295388 total_files=58 - 0.131625138s DEBUG run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 5.699637906s DEBUG run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=5.568032553s - 5.699725263s DEBUG run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 23.854574129s DEBUG run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=18.154879021s - 23.854806531s DEBUG cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Success - 23.854879432s INFO cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:181: Auto-set test timeout to 1m 31s - 23.854905870s DEBUG cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:102: build_dirs=[BuildDir { path: "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp", temp_dir: Some(TempDir { path: "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp" }) }] - 23.855239616s TRACE cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:114: start thread thread_id=ThreadId(3) build_dir=BuildDir { path: "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp", temp_dir: Some(TempDir { path: "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp" }) } - 23.855726781s TRACE mutant{id=0}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } - 23.856020993s DEBUG mutant{id=0}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 24.008250477s DEBUG mutant{id=0}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=152.262955ms - 24.008452568s DEBUG mutant{id=0}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 24.562355058s DEBUG mutant{id=0}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=553.94431ms - 24.562386746s TRACE mutant{id=0}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } - 24.562512034s DEBUG mutant{id=0}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 24.562622198s TRACE mutant{id=1}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::issue", return_type: "-> Result<(), Error>", span: Span(162, 5, 166, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(163, 9, 165, 40), package_name: "faktory" } - 24.562677192s DEBUG mutant{id=1}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 25.665950660s DEBUG mutant{id=1}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.103278259s - 25.666035239s DEBUG mutant{id=1}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 40.810519154s DEBUG mutant{id=1}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.144513066s - 40.810577924s TRACE mutant{id=1}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::issue", return_type: "-> Result<(), Error>", span: Span(162, 5, 166, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(163, 9, 165, 40), package_name: "faktory" } - 40.810898033s DEBUG mutant{id=1}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 40.811126438s TRACE mutant{id=2}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::connect", return_type: "-> Result, E>, Error>", span: Span(106, 5, 119, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(113, 9, 118, 74), package_name: "faktory" } - 40.811240464s DEBUG mutant{id=2}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 41.012719096s DEBUG mutant{id=2}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.498238ms - 41.012744955s TRACE mutant{id=2}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::connect", return_type: "-> Result, E>, Error>", span: Span(106, 5, 119, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(113, 9, 118, 74), package_name: "faktory" } - 41.012892239s DEBUG mutant{id=2}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 41.012985502s TRACE mutant{id=3}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::deref", return_type: "-> &Self::Target", span: Span(129, 5, 131, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(130, 9, 130, 21), package_name: "faktory" } - 41.013031805s DEBUG mutant{id=3}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 42.015952222s DEBUG mutant{id=3}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.002927055s - 42.016041860s DEBUG mutant{id=3}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 42.318251196s DEBUG mutant{id=3}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.243245ms - 42.318291520s TRACE mutant{id=3}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::deref", return_type: "-> &Self::Target", span: Span(129, 5, 131, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(130, 9, 130, 21), package_name: "faktory" } - 42.318577167s DEBUG mutant{id=3}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 42.318742427s TRACE mutant{id=4}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::from_iter([Default::default()])))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 42.318852934s DEBUG mutant{id=4}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 42.420249176s DEBUG mutant{id=4}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.416623ms - 42.420320760s DEBUG mutant{id=4}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 42.672315138s DEBUG mutant{id=4}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.020261ms - 42.672444068s TRACE mutant{id=4}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::from_iter([Default::default()])))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 42.672722571s DEBUG mutant{id=4}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 42.673027811s TRACE mutant{id=5}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::deref_mut", return_type: "-> &mut Self::Target", span: Span(135, 5, 137, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(136, 9, 136, 25), package_name: "faktory" } - 42.673166643s DEBUG mutant{id=5}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 42.774694537s DEBUG mutant{id=5}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.549391ms - 42.774855137s DEBUG mutant{id=5}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 43.076738642s DEBUG mutant{id=5}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.90874ms - 43.076839867s TRACE mutant{id=5}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::deref_mut", return_type: "-> &mut Self::Target", span: Span(135, 5, 137, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(136, 9, 136, 25), package_name: "faktory" } - 43.077177031s DEBUG mutant{id=5}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 43.077713846s TRACE mutant{id=6}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::new()))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 43.078080705s DEBUG mutant{id=6}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 43.380286899s DEBUG mutant{id=6}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.231175ms - 43.380401521s TRACE mutant{id=6}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::new()))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 43.380777947s DEBUG mutant{id=6}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 43.381087585s TRACE mutant{id=7}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::connect", return_type: "-> Result", span: Span(38, 5, 57, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(52, 9, 56, 15), package_name: "faktory" } - 43.381239896s DEBUG mutant{id=7}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 44.284753480s DEBUG mutant{id=7}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.540326ms - 44.284870823s DEBUG mutant{id=7}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 44.586823106s DEBUG mutant{id=7}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.977774ms - 44.586921129s TRACE mutant{id=7}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::connect", return_type: "-> Result", span: Span(38, 5, 57, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(52, 9, 56, 15), package_name: "faktory" } - 44.587289560s DEBUG mutant{id=7}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 44.587472763s TRACE mutant{id=8}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerId::random", return_type: "-> Self", span: Span(62, 5, 65, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(64, 9, 64, 38), package_name: "faktory" } - 44.587589536s DEBUG mutant{id=8}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 45.590720853s DEBUG mutant{id=8}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.003155204s - 45.590808861s DEBUG mutant{id=8}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 60.536085666s DEBUG mutant{id=8}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.945291107s - 60.536257205s TRACE mutant{id=8}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerId::random", return_type: "-> Self", span: Span(62, 5, 65, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(64, 9, 64, 38), package_name: "faktory" } - 60.536954387s DEBUG mutant{id=8}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 60.537800252s TRACE mutant{id=9}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Fail::generic", return_type: "-> Self", span: Span(108, 5, 110, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(109, 9, 109, 46), package_name: "faktory" } - 60.538251386s DEBUG mutant{id=9}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 60.890660642s DEBUG mutant{id=9}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.451264ms - 60.890688562s TRACE mutant{id=9}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Fail::generic", return_type: "-> Self", span: Span(108, 5, 110, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(109, 9, 109, 46), package_name: "faktory" } - 60.890882075s DEBUG mutant{id=9}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 60.890964189s TRACE mutant{id=10}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_running", return_type: "", span: Span(47, 5, 49, 6) }), replacement: "()", genre: FnValue, span: Span(48, 9, 48, 77), package_name: "faktory" } - 60.891019375s DEBUG mutant{id=10}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 61.944151786s DEBUG mutant{id=10}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.053144744s - 61.944229027s DEBUG mutant{id=10}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 152.987804997s DEBUG mutant{id=10}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.043576803s - 152.987913935s DEBUG mutant{id=10}:run{phase=Test}:terminate_child{pid=354752}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 152.988066255s TRACE mutant{id=10}:run{phase=Test}:terminate_child{pid=354752}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 152.991343965s DEBUG mutant{id=10}:run{phase=Test}:terminate_child{pid=354752}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 152.991424064s DEBUG mutant{id=10}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.047209498s - 152.991463222s TRACE mutant{id=10}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_running", return_type: "", span: Span(47, 5, 49, 6) }), replacement: "()", genre: FnValue, span: Span(48, 9, 48, 77), package_name: "faktory" } - 152.991940123s DEBUG mutant{id=10}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 152.992323452s TRACE mutant{id=11}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::register", return_type: "-> &mut Self", span: Span(65, 5, 78, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(76, 9, 77, 13), package_name: "faktory" } - 152.992560502s DEBUG mutant{id=11}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 154.047122620s DEBUG mutant{id=11}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054595679s - 154.047217537s DEBUG mutant{id=11}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 158.961470041s DEBUG mutant{id=11}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.914287138s - 158.961582210s TRACE mutant{id=11}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::register", return_type: "-> &mut Self", span: Span(65, 5, 78, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(76, 9, 77, 13), package_name: "faktory" } - 158.962120944s DEBUG mutant{id=11}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 158.962359391s TRACE mutant{id=12}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_success", return_type: "", span: Span(51, 5, 56, 6) }), replacement: "()", genre: FnValue, span: Span(52, 9, 55, 40), package_name: "faktory" } - 158.962509836s DEBUG mutant{id=12}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 160.216969923s DEBUG mutant{id=12}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.25449514s - 160.217104737s DEBUG mutant{id=12}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 175.712021969s DEBUG mutant{id=12}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.494944188s - 175.712091776s TRACE mutant{id=12}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_success", return_type: "", span: Span(51, 5, 56, 6) }), replacement: "()", genre: FnValue, span: Span(52, 9, 55, 40), package_name: "faktory" } - 175.712652877s DEBUG mutant{id=12}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 175.713911738s TRACE mutant{id=13}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "bad", return_type: "-> error::Protocol", span: Span(7, 1, 30, 2) }), replacement: "Default::default()", genre: FnValue, span: Span(8, 5, 29, 6), package_name: "faktory" } - 175.714497623s DEBUG mutant{id=13}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 176.067280812s DEBUG mutant{id=13}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.840972ms - 176.067305883s TRACE mutant{id=13}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "bad", return_type: "-> error::Protocol", span: Span(7, 1, 30, 2) }), replacement: "Default::default()", genre: FnValue, span: Span(8, 5, 29, 6), package_name: "faktory" } - 176.067488383s DEBUG mutant{id=13}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 176.067580782s TRACE mutant{id=14}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "-", genre: BinaryOperator, span: Span(46, 36, 46, 37), package_name: "faktory" } - 176.067633109s DEBUG mutant{id=14}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 176.920305420s DEBUG mutant{id=14}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=852.675962ms - 176.920445436s DEBUG mutant{id=14}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 191.864836253s DEBUG mutant{id=14}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.944402009s - 191.865031226s TRACE mutant{id=14}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "-", genre: BinaryOperator, span: Span(46, 36, 46, 37), package_name: "faktory" } - 191.865854432s DEBUG mutant{id=14}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 191.866314408s TRACE mutant{id=15}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(78, 28, 78, 30), package_name: "faktory" } - 191.866598687s DEBUG mutant{id=15}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 192.018745139s DEBUG mutant{id=15}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=152.186963ms - 192.018887136s DEBUG mutant{id=15}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 207.366709126s DEBUG mutant{id=15}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.347875085s - 207.366786351s TRACE mutant{id=15}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(78, 28, 78, 30), package_name: "faktory" } - 207.367590132s DEBUG mutant{id=15}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 207.368393161s TRACE mutant{id=16}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(39, 41, 39, 43), package_name: "faktory" } - 207.368790598s DEBUG mutant{id=16}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 208.474245646s DEBUG mutant{id=16}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.105492243s - 208.474323704s DEBUG mutant{id=16}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 213.142999985s DEBUG mutant{id=16}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.668689093s - 213.143056686s TRACE mutant{id=16}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(39, 41, 39, 43), package_name: "faktory" } - 213.143592017s DEBUG mutant{id=16}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 213.143791571s TRACE mutant{id=17}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::run", return_type: "-> Result<(), E>", span: Span(90, 5, 92, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(91, 9, 91, 28), package_name: "faktory" } - 213.143947399s DEBUG mutant{id=17}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 214.298836724s DEBUG mutant{id=17}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.154914067s - 214.298954666s DEBUG mutant{id=17}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 219.269719303s DEBUG mutant{id=17}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.970786664s - 219.269774535s TRACE mutant{id=17}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::run", return_type: "-> Result<(), E>", span: Span(90, 5, 92, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(91, 9, 91, 28), package_name: "faktory" } - 219.270398487s DEBUG mutant{id=17}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 219.270983284s TRACE mutant{id=18}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::id", return_type: "-> &JobId", span: Span(243, 5, 246, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(245, 9, 245, 18), package_name: "faktory" } - 219.271269695s DEBUG mutant{id=18}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 219.523741103s DEBUG mutant{id=18}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.502041ms - 219.523918162s TRACE mutant{id=18}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::id", return_type: "-> &JobId", span: Span(243, 5, 246, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(245, 9, 245, 18), package_name: "faktory" } - 219.524203792s DEBUG mutant{id=18}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 219.524422189s TRACE mutant{id=19}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::new())", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 219.524530918s DEBUG mutant{id=19}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 219.776273061s DEBUG mutant{id=19}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.753171ms - 219.776323102s TRACE mutant{id=19}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::new())", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 219.776747488s DEBUG mutant{id=19}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 219.777145090s TRACE mutant{id=20}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::on_queue", return_type: "-> Self", span: Span(234, 5, 241, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(239, 9, 240, 13), package_name: "faktory" } - 219.777302006s DEBUG mutant{id=20}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 220.079791448s DEBUG mutant{id=20}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.510082ms - 220.079847314s TRACE mutant{id=20}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::on_queue", return_type: "-> Self", span: Span(234, 5, 241, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(239, 9, 240, 13), package_name: "faktory" } - 220.080470952s DEBUG mutant{id=20}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 220.080936646s TRACE mutant{id=21}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_complete_callback", return_type: "-> Batch", span: Span(190, 5, 195, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(192, 9, 194, 10), package_name: "faktory" } - 220.081193537s DEBUG mutant{id=21}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 221.035274166s DEBUG mutant{id=21}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=954.110159ms - 221.035344200s DEBUG mutant{id=21}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 221.336890169s DEBUG mutant{id=21}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.554809ms - 221.337001084s TRACE mutant{id=21}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_complete_callback", return_type: "-> Batch", span: Span(190, 5, 195, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(192, 9, 194, 10), package_name: "faktory" } - 221.337521303s DEBUG mutant{id=21}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 221.337985756s TRACE mutant{id=22}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::from(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 221.338168746s DEBUG mutant{id=22}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 221.640244267s DEBUG mutant{id=22}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.09532ms - 221.640372282s TRACE mutant{id=22}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::from(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 221.640925441s DEBUG mutant{id=22}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 221.641344017s TRACE mutant{id=23}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Batch::builder", return_type: "-> BatchBuilder", span: Span(161, 5, 164, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(163, 9, 163, 28), package_name: "faktory" } - 221.641556878s DEBUG mutant{id=23}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 222.495312373s DEBUG mutant{id=23}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=853.781155ms - 222.495356890s DEBUG mutant{id=23}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 222.696830916s DEBUG mutant{id=23}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.486575ms - 222.696894227s TRACE mutant{id=23}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Batch::builder", return_type: "-> BatchBuilder", span: Span(161, 5, 164, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(163, 9, 163, 28), package_name: "faktory" } - 222.698116791s DEBUG mutant{id=23}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 222.698773371s TRACE mutant{id=24}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::new(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 222.699067337s DEBUG mutant{id=24}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 222.951423698s DEBUG mutant{id=24}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.385855ms - 222.951489163s TRACE mutant{id=24}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::new(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 222.951664905s DEBUG mutant{id=24}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 222.951725307s TRACE mutant{id=25}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::maybe_bid", return_type: "-> Result, Error>", span: Span(52, 5, 68, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(53, 9, 67, 10), package_name: "faktory" } - 222.951762059s DEBUG mutant{id=25}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 223.804219815s DEBUG mutant{id=25}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=852.462988ms - 223.804298693s DEBUG mutant{id=25}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 238.797979003s DEBUG mutant{id=25}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.993704267s - 238.798144490s TRACE mutant{id=25}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::maybe_bid", return_type: "-> Result, Error>", span: Span(52, 5, 68, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(53, 9, 67, 10), package_name: "faktory" } - 238.799092543s DEBUG mutant{id=25}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 238.800081133s TRACE mutant{id=26}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "check_protocols_match", return_type: "-> Result<(), Error>", span: Span(22, 1, 31, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(23, 5, 30, 11), package_name: "faktory" } - 238.800619666s DEBUG mutant{id=26}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 240.005496996s DEBUG mutant{id=26}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.2049239s - 240.005602909s DEBUG mutant{id=26}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 255.453086116s DEBUG mutant{id=26}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.447503105s - 255.453260334s TRACE mutant{id=26}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "check_protocols_match", return_type: "-> Result<(), Error>", span: Span(22, 1, 31, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(23, 5, 30, 11), package_name: "faktory" } - 255.454287749s DEBUG mutant{id=26}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 255.454767859s TRACE mutant{id=27}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Progress::update_builder", return_type: "-> ProgressUpdateBuilder", span: Span(152, 5, 155, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(154, 9, 154, 53), package_name: "faktory" } - 255.455072898s DEBUG mutant{id=27}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 256.761055104s DEBUG mutant{id=27}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.306019976s - 256.761206791s DEBUG mutant{id=27}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 257.113946764s DEBUG mutant{id=27}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.774372ms - 257.113974601s TRACE mutant{id=27}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Progress::update_builder", return_type: "-> ProgressUpdateBuilder", span: Span(152, 5, 155, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(154, 9, 154, 53), package_name: "faktory" } - 257.114244120s DEBUG mutant{id=27}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 257.114438597s TRACE mutant{id=28}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::failure", return_type: "-> &Option", span: Span(258, 5, 261, 6) }), replacement: "&Some(Default::default())", genre: FnValue, span: Span(260, 9, 260, 22), package_name: "faktory" } - 257.114526397s DEBUG mutant{id=28}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 257.265562196s DEBUG mutant{id=28}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=151.043858ms - 257.265666610s TRACE mutant{id=28}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::failure", return_type: "-> &Option", span: Span(258, 5, 261, 6) }), replacement: "&Some(Default::default())", genre: FnValue, span: Span(260, 9, 260, 22), package_name: "faktory" } - 257.266175643s DEBUG mutant{id=28}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 257.266332238s TRACE mutant{id=29}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_last_result", return_type: "-> Option>", span: Span(14, 5, 16, 6) }), replacement: "None", genre: FnValue, span: Span(15, 9, 15, 36), package_name: "faktory" } - 257.266438860s DEBUG mutant{id=29}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 258.170099462s DEBUG mutant{id=29}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.681445ms - 258.170164665s DEBUG mutant{id=29}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 273.733483303s DEBUG mutant{id=29}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.563326397s - 273.733630410s TRACE mutant{id=29}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_last_result", return_type: "-> Option>", span: Span(14, 5, 16, 6) }), replacement: "None", genre: FnValue, span: Span(15, 9, 15, 36), package_name: "faktory" } - 273.734361344s DEBUG mutant{id=29}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 273.734613906s TRACE mutant{id=30}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_id", return_type: "-> String", span: Span(6, 1, 12, 2) }), replacement: "String::new()", genre: FnValue, span: Span(7, 5, 11, 19), package_name: "faktory" } - 273.734800269s DEBUG mutant{id=30}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 274.739519076s DEBUG mutant{id=30}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004750365s - 274.739651512s DEBUG mutant{id=30}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 276.245777148s DEBUG mutant{id=30}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=1.506150432s - 276.245941707s TRACE mutant{id=30}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_id", return_type: "-> String", span: Span(6, 1, 12, 2) }), replacement: "String::new()", genre: FnValue, span: Span(7, 5, 11, 19), package_name: "faktory" } - 276.246821048s DEBUG mutant{id=30}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 276.247081640s TRACE mutant{id=31}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_wid", return_type: "-> String", span: Span(18, 1, 20, 2) }), replacement: "String::new()", genre: FnValue, span: Span(19, 5, 19, 36), package_name: "faktory" } - 276.247289166s DEBUG mutant{id=31}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 277.202493415s DEBUG mutant{id=31}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=955.24063ms - 277.202615078s DEBUG mutant{id=31}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 291.904952869s DEBUG mutant{id=31}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.702377426s - 291.905103248s TRACE mutant{id=31}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_wid", return_type: "-> String", span: Span(18, 1, 20, 2) }), replacement: "String::new()", genre: FnValue, span: Span(19, 5, 19, 36), package_name: "faktory" } - 291.906036455s DEBUG mutant{id=31}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 291.906692696s TRACE mutant{id=32}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_bid", return_type: "-> Result", span: Span(67, 1, 83, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(69, 5, 82, 6), package_name: "faktory" } - 291.907033322s DEBUG mutant{id=32}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 293.162320298s DEBUG mutant{id=32}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.255316404s - 293.162453228s DEBUG mutant{id=32}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 308.471507634s DEBUG mutant{id=32}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.309102663s - 308.471677788s TRACE mutant{id=32}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_bid", return_type: "-> Result", span: Span(67, 1, 83, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(69, 5, 82, 6), package_name: "faktory" } - 308.472542947s DEBUG mutant{id=32}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 308.472843597s TRACE mutant{id=33}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::reconnect", return_type: "-> io::Result", span: Span(49, 5, 52, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(50, 9, 51, 30), package_name: "faktory" } - 308.473105460s DEBUG mutant{id=33}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 308.775803478s DEBUG mutant{id=33}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.735387ms - 308.775887053s TRACE mutant{id=33}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::reconnect", return_type: "-> io::Result", span: Span(49, 5, 52, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(50, 9, 51, 30), package_name: "faktory" } - 308.776389275s DEBUG mutant{id=33}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 308.776726931s TRACE mutant{id=34}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(148, 29, 148, 30), package_name: "faktory" } - 308.776864086s DEBUG mutant{id=34}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 310.031101597s DEBUG mutant{id=34}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.254252543s - 310.031154363s DEBUG mutant{id=34}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 314.848111648s DEBUG mutant{id=34}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.816979822s - 314.848180612s TRACE mutant{id=34}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(148, 29, 148, 30), package_name: "faktory" } - 314.849349725s DEBUG mutant{id=34}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 314.849629062s TRACE mutant{id=35}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::get_batch_status", return_type: "-> Result, Error>", span: Span(21, 5, 25, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(23, 9, 24, 50), package_name: "faktory" } - 314.849834383s DEBUG mutant{id=35}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 315.954765327s DEBUG mutant{id=35}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104961916s - 315.954890594s DEBUG mutant{id=35}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 316.207335309s DEBUG mutant{id=35}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.489137ms - 316.207430349s TRACE mutant{id=35}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::get_batch_status", return_type: "-> Result, Error>", span: Span(21, 5, 25, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(23, 9, 24, 50), package_name: "faktory" } - 316.208073591s DEBUG mutant{id=35}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 316.208510748s TRACE mutant{id=36}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::args", return_type: "-> &mut Self", span: Span(165, 5, 173, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(171, 9, 172, 13), package_name: "faktory" } - 316.208739877s DEBUG mutant{id=36}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 316.410760661s DEBUG mutant{id=36}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=202.044427ms - 316.410917796s TRACE mutant{id=36}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::args", return_type: "-> &mut Self", span: Span(165, 5, 173, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(171, 9, 172, 13), package_name: "faktory" } - 316.411856236s DEBUG mutant{id=36}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 316.412598053s TRACE mutant{id=37}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::from(Default::default())]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 316.412975513s DEBUG mutant{id=37}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 316.665588441s DEBUG mutant{id=37}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.650745ms - 316.665635374s TRACE mutant{id=37}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::from(Default::default())]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 316.666362239s DEBUG mutant{id=37}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 316.666738409s TRACE mutant{id=38}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::new()]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 316.666870724s DEBUG mutant{id=38}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 316.918687154s DEBUG mutant{id=38}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.832823ms - 316.918812460s TRACE mutant{id=38}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::new()]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 316.919573221s DEBUG mutant{id=38}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 316.919794202s TRACE mutant{id=39}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::new()))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 316.919962989s DEBUG mutant{id=39}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 317.724110693s DEBUG mutant{id=39}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=804.176033ms - 317.724344552s DEBUG mutant{id=39}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 318.027425925s DEBUG mutant{id=39}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=303.129791ms - 318.027560215s TRACE mutant{id=39}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::new()))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } - 318.028149825s DEBUG mutant{id=39}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 318.028564342s TRACE mutant{id=40}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(238, 5, 240, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(239, 9, 239, 43), package_name: "faktory" } - 318.028757227s DEBUG mutant{id=40}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 318.230515453s DEBUG mutant{id=40}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.778944ms - 318.230578480s TRACE mutant{id=40}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(238, 5, 240, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(239, 9, 239, 43), package_name: "faktory" } - 318.230937862s DEBUG mutant{id=40}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 318.231029283s TRACE mutant{id=41}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::commit_batch", return_type: "-> Result<(), Error>", span: Span(42, 5, 44, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(43, 9, 43, 67), package_name: "faktory" } - 318.231096702s DEBUG mutant{id=41}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 319.034259625s DEBUG mutant{id=41}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.173896ms - 319.034417827s DEBUG mutant{id=41}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 334.398744442s DEBUG mutant{id=41}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.364359929s - 334.398899057s TRACE mutant{id=41}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::commit_batch", return_type: "-> Result<(), Error>", span: Span(42, 5, 44, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(43, 9, 43, 67), package_name: "faktory" } - 334.399744975s DEBUG mutant{id=41}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 334.400102573s TRACE mutant{id=42}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::workers", return_type: "-> &mut Self", span: Span(57, 5, 63, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(61, 9, 62, 13), package_name: "faktory" } - 334.400312348s DEBUG mutant{id=42}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 335.405529877s DEBUG mutant{id=42}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.005247163s - 335.405743636s DEBUG mutant{id=42}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 350.373675381s DEBUG mutant{id=42}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.967979558s - 350.373889301s TRACE mutant{id=42}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::workers", return_type: "-> &mut Self", span: Span(57, 5, 63, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(61, 9, 62, 13), package_name: "faktory" } - 350.374674474s DEBUG mutant{id=42}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 350.375219360s TRACE mutant{id=43}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "1", genre: FnValue, span: Span(228, 9, 241, 16), package_name: "faktory" } - 350.375467721s DEBUG mutant{id=43}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 351.530165810s DEBUG mutant{id=43}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.154724381s - 351.530202242s DEBUG mutant{id=43}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 366.334642836s DEBUG mutant{id=43}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.804449256s - 366.334753613s TRACE mutant{id=43}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "1", genre: FnValue, span: Span(228, 9, 241, 16), package_name: "faktory" } - 366.335400567s DEBUG mutant{id=43}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 366.335839168s TRACE mutant{id=44}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::new(Default::default()))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 366.336010844s DEBUG mutant{id=44}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 366.637869684s DEBUG mutant{id=44}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.878533ms - 366.637988831s TRACE mutant{id=44}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::new(Default::default()))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 366.638829878s DEBUG mutant{id=44}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 366.639470171s TRACE mutant{id=45}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_failure_to_server", return_type: "-> Result<(), Error>", span: Span(177, 5, 179, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(178, 9, 178, 47), package_name: "faktory" } - 366.639730758s DEBUG mutant{id=45}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 367.844520904s DEBUG mutant{id=45}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.204821601s - 367.844603210s DEBUG mutant{id=45}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 382.904958360s DEBUG mutant{id=45}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.060369254s - 382.905088013s TRACE mutant{id=45}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_failure_to_server", return_type: "-> Result<(), Error>", span: Span(177, 5, 179, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(178, 9, 178, 47), package_name: "faktory" } - 382.906218622s DEBUG mutant{id=45}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 382.906940549s TRACE mutant{id=46}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(160, 29, 160, 30), package_name: "faktory" } - 382.907265445s DEBUG mutant{id=46}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 384.062071458s DEBUG mutant{id=46}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.154832763s - 384.062144444s DEBUG mutant{id=46}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 389.029579506s DEBUG mutant{id=46}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.96745839s - 389.029751441s TRACE mutant{id=46}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(160, 29, 160, 30), package_name: "faktory" } - 389.031050231s DEBUG mutant{id=46}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 389.031873570s TRACE mutant{id=47}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::new())))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 389.032229201s DEBUG mutant{id=47}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 390.187278880s DEBUG mutant{id=47}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.155086285s - 390.187356660s DEBUG mutant{id=47}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 405.299924182s DEBUG mutant{id=47}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.112592566s - 405.300085135s TRACE mutant{id=47}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::new())))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 405.301255463s DEBUG mutant{id=47}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 405.302016491s TRACE mutant{id=48}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 405.308762206s DEBUG mutant{id=48}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 406.263013758s DEBUG mutant{id=48}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=954.281432ms - 406.263094412s DEBUG mutant{id=48}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 421.072954425s DEBUG mutant{id=48}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.809886519s - 421.073093079s TRACE mutant{id=48}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 421.074240047s DEBUG mutant{id=48}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 421.074821047s TRACE mutant{id=49}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new())", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 421.080519921s DEBUG mutant{id=49}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 421.333124290s DEBUG mutant{id=49}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.636832ms - 421.333151392s TRACE mutant{id=49}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new())", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 421.333381412s DEBUG mutant{id=49}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 421.333585346s TRACE mutant{id=50}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "==", genre: BinaryOperator, span: Span(358, 24, 358, 26), package_name: "faktory" } - 421.333663772s DEBUG mutant{id=50}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 422.386529911s DEBUG mutant{id=50}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.052871373s - 422.386657674s DEBUG mutant{id=50}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 513.422449343s DEBUG mutant{id=50}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.035797993s - 513.422533235s DEBUG mutant{id=50}:run{phase=Test}:terminate_child{pid=419215}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 513.422609714s TRACE mutant{id=50}:run{phase=Test}:terminate_child{pid=419215}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 513.425789279s DEBUG mutant{id=50}:run{phase=Test}:terminate_child{pid=419215}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 513.425847256s DEBUG mutant{id=50}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.039214063s - 513.425917888s TRACE mutant{id=50}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "==", genre: BinaryOperator, span: Span(358, 24, 358, 26), package_name: "faktory" } - 513.426591812s DEBUG mutant{id=50}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 513.426805814s TRACE mutant{id=51}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::new(Default::default()))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } - 513.426931300s DEBUG mutant{id=51}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 514.481158635s DEBUG mutant{id=51}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.05424587s - 514.481203624s DEBUG mutant{id=51}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 514.782849555s DEBUG mutant{id=51}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.65709ms - 514.782896315s TRACE mutant{id=51}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::new(Default::default()))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } - 514.783748536s DEBUG mutant{id=51}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 514.784168522s TRACE mutant{id=52}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(143, 5, 145, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(144, 9, 144, 43), package_name: "faktory" } - 514.784368283s DEBUG mutant{id=52}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 515.688417032s DEBUG mutant{id=52}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.074967ms - 515.688520392s DEBUG mutant{id=52}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 530.139728969s DEBUG mutant{id=52}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.451246107s - 530.139787302s TRACE mutant{id=52}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(143, 5, 145, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(144, 9, 144, 43), package_name: "faktory" } - 530.140616205s DEBUG mutant{id=52}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 530.141094044s TRACE mutant{id=53}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::build", return_type: "-> Job", span: Span(186, 5, 199, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(194, 9, 198, 58), package_name: "faktory" } - 530.141279105s DEBUG mutant{id=53}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 530.393571663s DEBUG mutant{id=53}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.315896ms - 530.393704298s TRACE mutant{id=53}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::build", return_type: "-> Job", span: Span(186, 5, 199, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(194, 9, 198, 58), package_name: "faktory" } - 530.394641963s DEBUG mutant{id=53}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 530.394863821s TRACE mutant{id=54}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::commit", return_type: "-> Result<(), Error>", span: Span(37, 5, 45, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(44, 9, 44, 44), package_name: "faktory" } - 530.395026820s DEBUG mutant{id=54}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 531.299379885s DEBUG mutant{id=54}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.383245ms - 531.299564556s DEBUG mutant{id=54}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 545.961044069s DEBUG mutant{id=54}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.661515093s - 545.961223755s TRACE mutant{id=54}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::commit", return_type: "-> Result<(), Error>", span: Span(37, 5, 45, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(44, 9, 44, 44), package_name: "faktory" } - 545.962762268s DEBUG mutant{id=54}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 545.963743041s TRACE mutant{id=55}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 545.964204623s DEBUG mutant{id=55}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 547.019337414s DEBUG mutant{id=55}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.055174828s - 547.019393178s DEBUG mutant{id=55}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 561.781693178s DEBUG mutant{id=55}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.762062408s - 561.781755688s TRACE mutant{id=55}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 561.782788587s DEBUG mutant{id=55}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 561.783331034s TRACE mutant{id=56}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(47, 5, 49, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(48, 9, 48, 44), package_name: "faktory" } - 561.783611805s DEBUG mutant{id=56}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 562.838267754s DEBUG mutant{id=56}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054685622s - 562.838388491s DEBUG mutant{id=56}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 577.647066801s DEBUG mutant{id=56}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.808720013s - 577.647185628s TRACE mutant{id=56}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(47, 5, 49, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(48, 9, 48, 44), package_name: "faktory" } - 577.648044278s DEBUG mutant{id=56}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 577.648275569s TRACE mutant{id=57}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::add", return_type: "-> Result, Error>", span: Span(21, 5, 29, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(27, 9, 28, 47), package_name: "faktory" } - 577.648457866s DEBUG mutant{id=57}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 578.551654415s DEBUG mutant{id=57}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.220904ms - 578.551738565s DEBUG mutant{id=57}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 593.649031642s DEBUG mutant{id=57}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.097299421s - 593.649123783s TRACE mutant{id=57}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::add", return_type: "-> Result, Error>", span: Span(21, 5, 29, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(27, 9, 28, 47), package_name: "faktory" } - 593.650395476s DEBUG mutant{id=57}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 593.651000082s TRACE mutant{id=58}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::from(Ok(())))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } - 593.651302394s DEBUG mutant{id=58}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 593.903593661s DEBUG mutant{id=58}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.314316ms - 593.903641261s TRACE mutant{id=58}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::from(Ok(())))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } - 593.904610633s DEBUG mutant{id=58}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 593.905194626s TRACE mutant{id=59}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::init", return_type: "-> Result<(), Error>", span: Span(228, 5, 266, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(229, 9, 265, 15), package_name: "faktory" } - 593.905429485s DEBUG mutant{id=59}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 595.360880320s DEBUG mutant{id=59}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.455478988s - 595.361014907s DEBUG mutant{id=59}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 600.731384306s DEBUG mutant{id=59}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=5.370394446s - 600.731468616s TRACE mutant{id=59}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::init", return_type: "-> Result<(), Error>", span: Span(228, 5, 266, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(229, 9, 265, 15), package_name: "faktory" } - 600.732712558s DEBUG mutant{id=59}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 600.733047251s TRACE mutant{id=60}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::wid", return_type: "-> &mut Self", span: Span(41, 5, 47, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(45, 9, 46, 13), package_name: "faktory" } - 600.733251256s DEBUG mutant{id=60}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 602.290008289s DEBUG mutant{id=60}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.556787067s - 602.290225291s DEBUG mutant{id=60}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 618.043635524s DEBUG mutant{id=60}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.753455361s - 618.043735340s TRACE mutant{id=60}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::wid", return_type: "-> &mut Self", span: Span(41, 5, 47, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(45, 9, 46, 13), package_name: "faktory" } - 618.044707950s DEBUG mutant{id=60}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 618.044982725s TRACE mutant{id=61}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } - 618.045123264s DEBUG mutant{id=61}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 618.999123401s DEBUG mutant{id=61}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=954.020799ms - 618.999232937s DEBUG mutant{id=61}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 619.452376239s DEBUG mutant{id=61}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=453.178335ms - 619.452564476s TRACE mutant{id=61}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } - 619.453089331s DEBUG mutant{id=61}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 619.453317398s TRACE mutant{id=62}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(148, 29, 148, 30), package_name: "faktory" } - 619.453423101s DEBUG mutant{id=62}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 620.507147125s DEBUG mutant{id=62}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.053735115s - 620.507261656s DEBUG mutant{id=62}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 625.272504936s DEBUG mutant{id=62}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.765279895s - 625.272553116s TRACE mutant{id=62}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(148, 29, 148, 30), package_name: "faktory" } - 625.272824919s DEBUG mutant{id=62}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 625.272960416s TRACE mutant{id=63}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::info", return_type: "-> Result", span: Span(362, 5, 371, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(366, 9, 370, 74), package_name: "faktory" } - 625.273013827s DEBUG mutant{id=63}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 626.326905946s DEBUG mutant{id=63}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.053895723s - 626.327032251s DEBUG mutant{id=63}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 641.476685561s DEBUG mutant{id=63}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.149698542s - 641.476723203s TRACE mutant{id=63}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::info", return_type: "-> Result", span: Span(362, 5, 371, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(366, 9, 370, 74), package_name: "faktory" } - 641.477506268s DEBUG mutant{id=63}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 641.478160307s TRACE mutant{id=64}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 641.484651232s DEBUG mutant{id=64}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 642.588638211s DEBUG mutant{id=64}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.10400187s - 642.588732731s DEBUG mutant{id=64}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 657.747052741s DEBUG mutant{id=64}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.158335484s - 657.747205310s TRACE mutant{id=64}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 657.748474868s DEBUG mutant{id=64}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 657.748781012s TRACE mutant{id=65}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::from_iter([Default::default()]))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } - 657.749038756s DEBUG mutant{id=65}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 658.954290912s DEBUG mutant{id=65}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.205286416s - 658.954363036s DEBUG mutant{id=65}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 659.256112157s DEBUG mutant{id=65}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.761368ms - 659.256247298s TRACE mutant{id=65}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::from_iter([Default::default()]))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } - 659.257018447s DEBUG mutant{id=65}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 659.257504942s TRACE mutant{id=66}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::from_iter([Default::default()]))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 659.257691938s DEBUG mutant{id=66}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 659.509927194s DEBUG mutant{id=66}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.256707ms - 659.509958321s TRACE mutant{id=66}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::from_iter([Default::default()]))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } - 659.510474810s DEBUG mutant{id=66}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 659.510768891s TRACE mutant{id=67}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(138, 5, 232, 6), package_name: "faktory" } - 659.510888187s DEBUG mutant{id=67}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 659.712209267s DEBUG mutant{id=67}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.331675ms - 659.712272594s TRACE mutant{id=67}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(138, 5, 232, 6), package_name: "faktory" } - 659.713309123s DEBUG mutant{id=67}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 659.713957593s TRACE mutant{id=68}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_one", return_type: "-> Result", span: Span(244, 5, 276, 6) }), replacement: "Ok(false)", genre: FnValue, span: Span(249, 9, 275, 17), package_name: "faktory" } - 659.714207452s DEBUG mutant{id=68}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 660.969729857s DEBUG mutant{id=68}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.255552093s - 660.969824756s DEBUG mutant{id=68}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 676.020392112s DEBUG mutant{id=68}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.050581909s - 676.020537256s TRACE mutant{id=68}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_one", return_type: "-> Result", span: Span(244, 5, 276, 6) }), replacement: "Ok(false)", genre: FnValue, span: Span(249, 9, 275, 17), package_name: "faktory" } - 676.021872860s DEBUG mutant{id=68}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 676.022503877s TRACE mutant{id=69}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::connect_again", return_type: "-> Result", span: Span(158, 5, 161, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(159, 9, 160, 48), package_name: "faktory" } - 676.022769744s DEBUG mutant{id=69}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 676.375071283s DEBUG mutant{id=69}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.332135ms - 676.375109070s TRACE mutant{id=69}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::connect_again", return_type: "-> Result", span: Span(158, 5, 161, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(159, 9, 160, 48), package_name: "faktory" } - 676.375863041s DEBUG mutant{id=69}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 676.376272589s TRACE mutant{id=70}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "Ok(0)", genre: FnValue, span: Span(328, 9, 373, 10), package_name: "faktory" } - 676.376435191s DEBUG mutant{id=70}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 677.681899432s DEBUG mutant{id=70}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.305483058s - 677.682011869s DEBUG mutant{id=70}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 682.698494408s DEBUG mutant{id=70}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=5.016517955s - 682.698565288s TRACE mutant{id=70}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "Ok(0)", genre: FnValue, span: Span(328, 9, 373, 10), package_name: "faktory" } - 682.699680886s DEBUG mutant{id=70}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 682.700243463s TRACE mutant{id=71}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::new(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 682.700449066s DEBUG mutant{id=71}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 683.003213701s DEBUG mutant{id=71}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.788185ms - 683.003282174s TRACE mutant{id=71}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::new(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } - 683.004462870s DEBUG mutant{id=71}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 683.004687964s TRACE mutant{id=72}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "host_from_url", return_type: "-> String", span: Span(10, 1, 12, 2) }), replacement: "String::new()", genre: FnValue, span: Span(11, 5, 11, 74), package_name: "faktory" } - 683.004850252s DEBUG mutant{id=72}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 684.209888256s DEBUG mutant{id=72}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.205063701s - 684.209977674s DEBUG mutant{id=72}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 688.773095013s DEBUG mutant{id=72}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.563153488s - 688.773243413s TRACE mutant{id=72}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "host_from_url", return_type: "-> String", span: Span(10, 1, 12, 2) }), replacement: "String::new()", genre: FnValue, span: Span(11, 5, 11, 74), package_name: "faktory" } - 688.773544110s DEBUG mutant{id=72}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 688.773703445s TRACE mutant{id=73}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::for_worker", return_type: "-> Result", span: Span(284, 5, 291, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(285, 9, 290, 11), package_name: "faktory" } - 688.773761324s DEBUG mutant{id=73}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 688.974976316s DEBUG mutant{id=73}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.219871ms - 688.975097941s TRACE mutant{id=73}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::for_worker", return_type: "-> Result", span: Span(284, 5, 291, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(285, 9, 290, 11), package_name: "faktory" } - 688.976161528s DEBUG mutant{id=73}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 688.976806325s TRACE mutant{id=74}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(305, 57, 305, 59), package_name: "faktory" } - 688.977118186s DEBUG mutant{id=74}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 689.981323314s DEBUG mutant{id=74}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004230518s - 689.981496139s DEBUG mutant{id=74}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 694.846309266s DEBUG mutant{id=74}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.864842152s - 694.846367498s TRACE mutant{id=74}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(305, 57, 305, 59), package_name: "faktory" } - 694.847438872s DEBUG mutant{id=74}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 694.848051393s TRACE mutant{id=75}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::args", return_type: "-> &[serde_json::Value]", span: Span(253, 5, 256, 6) }), replacement: "Vec::leak(Vec::new())", genre: FnValue, span: Span(255, 9, 255, 19), package_name: "faktory" } - 694.848258751s DEBUG mutant{id=75}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 696.052986807s DEBUG mutant{id=75}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.204751921s - 696.053051051s DEBUG mutant{id=75}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 710.813642118s DEBUG mutant{id=75}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.760608598s - 710.813705515s TRACE mutant{id=75}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::args", return_type: "-> &[serde_json::Value]", span: Span(253, 5, 256, 6) }), replacement: "Vec::leak(Vec::new())", genre: FnValue, span: Span(255, 9, 255, 19), package_name: "faktory" } - 710.815254562s DEBUG mutant{id=75}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 710.815521525s TRACE mutant{id=76}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(7, 5, 12, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(8, 9, 11, 40), package_name: "faktory" } - 710.815746137s DEBUG mutant{id=76}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 711.720099883s DEBUG mutant{id=76}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.392588ms - 711.720157191s DEBUG mutant{id=76}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 726.829006621s DEBUG mutant{id=76}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.108864188s - 726.829182343s TRACE mutant{id=76}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(7, 5, 12, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(8, 9, 11, 40), package_name: "faktory" } - 726.830712227s DEBUG mutant{id=76}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 726.831122017s TRACE mutant{id=77}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::labels", return_type: "-> &mut Self", span: Span(49, 5, 55, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(53, 9, 54, 13), package_name: "faktory" } - 726.831362562s DEBUG mutant{id=77}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 727.785917490s DEBUG mutant{id=77}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=954.585798ms - 727.785983358s DEBUG mutant{id=77}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 742.398941062s DEBUG mutant{id=77}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.61297694s - 742.399107808s TRACE mutant{id=77}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::labels", return_type: "-> &mut Self", span: Span(49, 5, 55, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(53, 9, 54, 13), package_name: "faktory" } - 742.401125304s DEBUG mutant{id=77}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 742.401593914s TRACE mutant{id=78}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "Ok(false)", genre: FnValue, span: Span(20, 9, 76, 10), package_name: "faktory" } - 742.401833499s DEBUG mutant{id=78}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 743.557222547s DEBUG mutant{id=78}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.155425061s - 743.557365531s DEBUG mutant{id=78}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 834.604820674s DEBUG mutant{id=78}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.047484474s - 834.604925625s DEBUG mutant{id=78}:run{phase=Test}:terminate_child{pid=472007}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 834.605041081s TRACE mutant{id=78}:run{phase=Test}:terminate_child{pid=472007}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 834.608238792s DEBUG mutant{id=78}:run{phase=Test}:terminate_child{pid=472007}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 834.608311083s DEBUG mutant{id=78}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.050996319s - 834.608413664s TRACE mutant{id=78}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "Ok(false)", genre: FnValue, span: Span(20, 9, 76, 10), package_name: "faktory" } - 834.609514573s DEBUG mutant{id=78}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 834.609857073s TRACE mutant{id=79}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } - 834.610040275s DEBUG mutant{id=79}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 835.664518403s DEBUG mutant{id=79}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054501713s - 835.664565181s DEBUG mutant{id=79}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 836.166332643s DEBUG mutant{id=79}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=501.777443ms - 836.166388130s TRACE mutant{id=79}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } - 836.167549720s DEBUG mutant{id=79}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 836.167862190s TRACE mutant{id=80}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } - 836.174456546s DEBUG mutant{id=80}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 836.275959082s DEBUG mutant{id=80}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.533036ms - 836.276053366s DEBUG mutant{id=80}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 836.678533825s DEBUG mutant{id=80}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.506008ms - 836.678575682s TRACE mutant{id=80}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } - 836.679263070s DEBUG mutant{id=80}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 836.679388680s TRACE mutant{id=81}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(14, 5, 28, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(15, 9, 27, 10), package_name: "faktory" } - 836.679463572s DEBUG mutant{id=81}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 836.730552760s DEBUG mutant{id=81}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=51.103254ms - 836.730691534s DEBUG mutant{id=81}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 851.436418468s DEBUG mutant{id=81}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.705733528s - 851.436481660s TRACE mutant{id=81}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(14, 5, 28, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(15, 9, 27, 10), package_name: "faktory" } - 851.437733115s DEBUG mutant{id=81}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 851.438396379s TRACE mutant{id=82}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from(Ok(1))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } - 851.438781037s DEBUG mutant{id=82}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 851.540450769s DEBUG mutant{id=82}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.701318ms - 851.540643934s DEBUG mutant{id=82}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 851.993968881s DEBUG mutant{id=82}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=453.360766ms - 851.994045081s TRACE mutant{id=82}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from(Ok(1))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } - 851.995806547s DEBUG mutant{id=82}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 851.996583576s TRACE mutant{id=83}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::new(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 851.996913455s DEBUG mutant{id=83}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 852.249461538s DEBUG mutant{id=83}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.581739ms - 852.249561969s TRACE mutant{id=83}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::new(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } - 852.250505140s DEBUG mutant{id=83}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable - 852.250663920s TRACE mutant{id=84}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::from(Default::default())))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } - 852.250797224s DEBUG mutant{id=84}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 853.054336878s DEBUG mutant{id=84}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.558014ms - 853.054538220s DEBUG mutant{id=84}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 853.307139184s DEBUG mutant{id=84}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.640059ms - 853.307212453s TRACE mutant{id=84}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::from(Default::default())))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } - 853.308974508s DEBUG mutant{id=84}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 853.309740416s TRACE mutant{id=85}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, None))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 853.310081609s DEBUG mutant{id=85}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 854.364858851s DEBUG mutant{id=85}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054799641s - 854.365051803s DEBUG mutant{id=85}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 869.426832687s DEBUG mutant{id=85}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.061817152s - 869.427005224s TRACE mutant{id=85}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, None))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 869.428645835s DEBUG mutant{id=85}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant - 869.429287210s TRACE mutant{id=86}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_callbacks", return_type: "-> Batch", span: Span(197, 5, 203, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(199, 9, 202, 10), package_name: "faktory" } - 869.429653277s DEBUG mutant{id=86}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 870.684283421s DEBUG mutant{id=86}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.254666188s - 870.684338897s DEBUG mutant{id=86}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 870.885795489s DEBUG mutant{id=86}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.473589ms - 870.885829105s TRACE mutant{id=86}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_callbacks", return_type: "-> Batch", span: Span(197, 5, 203, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(199, 9, 202, 10), package_name: "faktory" } - 870.886608000s DEBUG mutant{id=86}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 870.886818614s TRACE mutant{id=87}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from_iter([Ok(1)])", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } - 870.886938759s DEBUG mutant{id=87}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 870.988070242s DEBUG mutant{id=87}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.145395ms - 870.988177034s DEBUG mutant{id=87}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 871.440690666s DEBUG mutant{id=87}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.548855ms - 871.440790146s TRACE mutant{id=87}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from_iter([Ok(1)])", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } - 871.441814666s DEBUG mutant{id=87}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 871.442020570s TRACE mutant{id=88}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "Ok(true)", genre: FnValue, span: Span(20, 9, 76, 10), package_name: "faktory" } - 871.442155974s DEBUG mutant{id=88}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 872.546095655s DEBUG mutant{id=88}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.103961095s - 872.546231327s DEBUG mutant{id=88}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 963.558924922s DEBUG mutant{id=88}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.012707164s - 963.559027716s DEBUG mutant{id=88}:run{phase=Test}:terminate_child{pid=483179}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process - 963.559170662s TRACE mutant{id=88}:run{phase=Test}:terminate_child{pid=483179}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination - 963.562436331s DEBUG mutant{id=88}:run{phase=Test}:terminate_child{pid=483179}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) - 963.562525445s DEBUG mutant{id=88}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.016322875s - 963.562616147s TRACE mutant{id=88}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "Ok(true)", genre: FnValue, span: Span(20, 9, 76, 10), package_name: "faktory" } - 963.563782701s DEBUG mutant{id=88}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout - 963.564317257s TRACE mutant{id=89}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_one", return_type: "-> Result", span: Span(244, 5, 276, 6) }), replacement: "Ok(true)", genre: FnValue, span: Span(249, 9, 275, 17), package_name: "faktory" } - 963.564556621s DEBUG mutant{id=89}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 964.669415797s DEBUG mutant{id=89}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104881797s - 964.669535362s DEBUG mutant{id=89}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 979.426277570s DEBUG mutant{id=89}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.756763231s - 979.426445749s TRACE mutant{id=89}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_one", return_type: "-> Result", span: Span(244, 5, 276, 6) }), replacement: "Ok(true)", genre: FnValue, span: Span(249, 9, 275, 17), package_name: "faktory" } - 979.428514993s DEBUG mutant{id=89}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 979.428958870s TRACE mutant{id=90}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_at", return_type: "-> &mut Self", span: Span(12, 5, 29, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(25, 9, 28, 10), package_name: "faktory" } - 979.429214529s DEBUG mutant{id=90}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 980.884019877s DEBUG mutant{id=90}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.454839045s - 980.884157233s DEBUG mutant{id=90}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 981.287063972s DEBUG mutant{id=90}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.95744ms - 981.287124930s TRACE mutant{id=90}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_at", return_type: "-> &mut Self", span: Span(12, 5, 29, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(25, 9, 28, 10), package_name: "faktory" } - 981.288904010s DEBUG mutant{id=90}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 981.289537257s TRACE mutant{id=91}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(249, 5, 254, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(250, 9, 253, 40), package_name: "faktory" } - 981.289927979s DEBUG mutant{id=91}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 982.294457245s DEBUG mutant{id=91}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004589095s - 982.294582773s DEBUG mutant{id=91}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - 997.394958720s DEBUG mutant{id=91}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.100414905s - 997.395085249s TRACE mutant{id=91}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(249, 5, 254, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(250, 9, 253, 40), package_name: "faktory" } - 997.396485026s DEBUG mutant{id=91}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant - 997.397157059s TRACE mutant{id=92}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } - 997.397489221s DEBUG mutant{id=92}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - 998.602034334s DEBUG mutant{id=92}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.204599323s - 998.602123735s DEBUG mutant{id=92}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1013.662246970s DEBUG mutant{id=92}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.060137761s -1013.662409891s TRACE mutant{id=92}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1013.664128284s DEBUG mutant{id=92}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1013.664825671s TRACE mutant{id=93}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(250, 5, 252, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(251, 9, 251, 29), package_name: "faktory" } -1013.665161616s DEBUG mutant{id=93}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1013.917526604s DEBUG mutant{id=93}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.397217ms -1013.917564991s TRACE mutant{id=93}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(250, 5, 252, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(251, 9, 251, 29), package_name: "faktory" } -1013.918278911s DEBUG mutant{id=93}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1013.918388636s TRACE mutant{id=94}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "get_env_url", return_type: "-> String", span: Span(4, 1, 8, 2) }), replacement: "String::new()", genre: FnValue, span: Span(5, 5, 7, 73), package_name: "faktory" } -1013.918470154s DEBUG mutant{id=94}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1015.022488397s DEBUG mutant{id=94}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104030474s -1015.022594076s DEBUG mutant{id=94}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1019.786564325s DEBUG mutant{id=94}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.764002861s -1019.786673511s TRACE mutant{id=94}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "get_env_url", return_type: "-> String", span: Span(4, 1, 8, 2) }), replacement: "String::new()", genre: FnValue, span: Span(5, 5, 7, 73), package_name: "faktory" } -1019.787668253s DEBUG mutant{id=94}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1019.787945129s TRACE mutant{id=95}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1019.788077210s DEBUG mutant{id=95}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1020.691505704s DEBUG mutant{id=95}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.447887ms -1020.691669847s DEBUG mutant{id=95}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1021.093968000s DEBUG mutant{id=95}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.308818ms -1021.094043754s TRACE mutant{id=95}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1021.094835896s DEBUG mutant{id=95}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1021.095169941s TRACE mutant{id=96}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::reconnect", return_type: "-> Result<(), Error>", span: Span(147, 5, 149, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(148, 9, 148, 33), package_name: "faktory" } -1021.095302494s DEBUG mutant{id=96}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1021.898873739s DEBUG mutant{id=96}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.584955ms -1021.899093576s DEBUG mutant{id=96}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1036.597289225s DEBUG mutant{id=96}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.698242069s -1036.597372624s TRACE mutant{id=96}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::reconnect", return_type: "-> Result<(), Error>", span: Span(147, 5, 149, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(148, 9, 148, 33), package_name: "faktory" } -1036.599416359s DEBUG mutant{id=96}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1036.599932989s TRACE mutant{id=97}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "/", genre: BinaryOperator, span: Span(109, 36, 109, 37), package_name: "faktory" } -1036.600349198s DEBUG mutant{id=97}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1037.604898156s DEBUG mutant{id=97}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004590803s -1037.604957593s DEBUG mutant{id=97}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1052.610709507s DEBUG mutant{id=97}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.005759197s -1052.610796010s TRACE mutant{id=97}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "/", genre: BinaryOperator, span: Span(109, 36, 109, 37), package_name: "faktory" } -1052.612640907s DEBUG mutant{id=97}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1052.613532721s TRACE mutant{id=98}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::from(Default::default())]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1052.613935434s DEBUG mutant{id=98}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1052.916135419s DEBUG mutant{id=98}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.231907ms -1052.916250099s TRACE mutant{id=98}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::from(Default::default())]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1052.917342925s DEBUG mutant{id=98}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1052.917597191s TRACE mutant{id=99}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } -1052.917743076s DEBUG mutant{id=99}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1053.821098427s DEBUG mutant{id=99}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.366939ms -1053.821275757s DEBUG mutant{id=99}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1054.273977178s DEBUG mutant{id=99}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.738946ms -1054.273996070s TRACE mutant{id=99}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } -1054.274341642s DEBUG mutant{id=99}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1054.274481935s TRACE mutant{id=100}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(206, 21, 206, 23), package_name: "faktory" } -1054.274544084s DEBUG mutant{id=100}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1055.378410504s DEBUG mutant{id=100}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.103870017s -1055.378580916s DEBUG mutant{id=100}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1060.045867108s DEBUG mutant{id=100}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.667338742s -1060.045968605s TRACE mutant{id=100}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(206, 21, 206, 23), package_name: "faktory" } -1060.047042022s DEBUG mutant{id=100}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1060.047463349s TRACE mutant{id=101}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::from(Default::default()))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } -1060.047657786s DEBUG mutant{id=101}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1060.299534312s DEBUG mutant{id=101}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.893791ms -1060.299605594s TRACE mutant{id=101}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::issue", return_type: "-> Result, Error>", span: Span(274, 5, 280, 6) }), replacement: "Ok(ReadToken::from(Default::default()))", genre: FnValue, span: Span(278, 9, 279, 28), package_name: "faktory" } -1060.301687957s DEBUG mutant{id=101}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1060.302238241s TRACE mutant{id=102}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::build", return_type: "-> Batch", span: Span(168, 5, 170, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(169, 9, 169, 65), package_name: "faktory" } -1060.302514547s DEBUG mutant{id=102}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1061.508039659s DEBUG mutant{id=102}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.205554929s -1061.508186938s DEBUG mutant{id=102}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1061.761560167s DEBUG mutant{id=102}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=253.426936ms -1061.761645590s TRACE mutant{id=102}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::build", return_type: "-> Batch", span: Span(168, 5, 170, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(169, 9, 169, 65), package_name: "faktory" } -1061.762619244s DEBUG mutant{id=102}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1061.762981565s TRACE mutant{id=103}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_ok", return_type: "-> Result<(), Error>", span: Span(109, 1, 118, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(110, 5, 117, 38), package_name: "faktory" } -1061.763152735s DEBUG mutant{id=103}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1062.817692086s DEBUG mutant{id=103}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.0545557s -1062.817850124s DEBUG mutant{id=103}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1077.678572564s DEBUG mutant{id=103}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.86078005s -1077.678623152s TRACE mutant{id=103}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_ok", return_type: "-> Result<(), Error>", span: Span(109, 1, 118, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(110, 5, 117, 38), package_name: "faktory" } -1077.679672405s DEBUG mutant{id=103}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1077.680066995s TRACE mutant{id=104}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_hi", return_type: "-> Result", span: Span(97, 1, 105, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(98, 5, 104, 38), package_name: "faktory" } -1077.685996300s DEBUG mutant{id=104}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1077.937903670s DEBUG mutant{id=104}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.933577ms -1077.938055218s TRACE mutant{id=104}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_hi", return_type: "-> Result", span: Span(97, 1, 105, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(98, 5, 104, 38), package_name: "faktory" } -1077.940015860s DEBUG mutant{id=104}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1077.940861606s TRACE mutant{id=105}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::new()))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1077.941234812s DEBUG mutant{id=105}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1078.293985374s DEBUG mutant{id=105}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.788072ms -1078.294052169s TRACE mutant{id=105}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::new()))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1078.295713470s DEBUG mutant{id=105}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1078.295949995s TRACE mutant{id=106}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_last_result", return_type: "-> Option>", span: Span(14, 5, 16, 6) }), replacement: "Some(Ok(Default::default()))", genre: FnValue, span: Span(15, 9, 15, 36), package_name: "faktory" } -1078.296126647s DEBUG mutant{id=106}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1079.500794948s DEBUG mutant{id=106}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.204696808s -1079.500886671s DEBUG mutant{id=106}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1170.528515232s DEBUG mutant{id=106}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.027643161s -1170.528614432s DEBUG mutant{id=106}:run{phase=Test}:terminate_child{pid=511242}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -1170.528712469s TRACE mutant{id=106}:run{phase=Test}:terminate_child{pid=511242}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -1170.532020469s DEBUG mutant{id=106}:run{phase=Test}:terminate_child{pid=511242}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -1170.532112506s DEBUG mutant{id=106}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.031257718s -1170.532142431s TRACE mutant{id=106}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_last_result", return_type: "-> Option>", span: Span(14, 5, 16, 6) }), replacement: "Some(Ok(Default::default()))", genre: FnValue, span: Span(15, 9, 15, 36), package_name: "faktory" } -1170.533829195s DEBUG mutant{id=106}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -1170.534196618s TRACE mutant{id=107}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new(Ok(0))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1170.534413527s DEBUG mutant{id=107}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1171.488354276s DEBUG mutant{id=107}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=953.96537ms -1171.488399482s DEBUG mutant{id=107}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1171.890591606s DEBUG mutant{id=107}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.205238ms -1171.890630793s TRACE mutant{id=107}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new(Ok(0))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -1171.891774850s DEBUG mutant{id=107}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1171.891934057s TRACE mutant{id=108}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::new(Default::default())))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1171.892074052s DEBUG mutant{id=108}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1171.993978670s DEBUG mutant{id=108}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.932594ms -1171.994063279s DEBUG mutant{id=108}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1172.296246598s DEBUG mutant{id=108}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.209877ms -1172.296283192s TRACE mutant{id=108}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::new(Default::default())))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1172.297202284s DEBUG mutant{id=108}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1172.297401923s TRACE mutant{id=109}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "/", genre: BinaryOperator, span: Span(78, 24, 78, 25), package_name: "faktory" } -1172.297518251s DEBUG mutant{id=109}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1172.348513450s DEBUG mutant{id=109}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=51.013933ms -1172.348578305s DEBUG mutant{id=109}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1187.295046221s DEBUG mutant{id=109}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.946473864s -1187.295213290s TRACE mutant{id=109}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "/", genre: BinaryOperator, span: Span(78, 24, 78, 25), package_name: "faktory" } -1187.297584169s DEBUG mutant{id=109}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1187.298186557s TRACE mutant{id=110}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_until_start", return_type: "-> &mut Self", span: Span(63, 5, 70, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(69, 9, 69, 57), package_name: "faktory" } -1187.298543606s DEBUG mutant{id=110}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1187.450580154s DEBUG mutant{id=110}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=152.071504ms -1187.450805313s DEBUG mutant{id=110}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1187.703155909s DEBUG mutant{id=110}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.402848ms -1187.703259174s TRACE mutant{id=110}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_until_start", return_type: "-> &mut Self", span: Span(63, 5, 70, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(69, 9, 69, 57), package_name: "faktory" } -1187.703775016s DEBUG mutant{id=110}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1187.703863725s TRACE mutant{id=111}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::from_iter([Default::default()]))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -1187.703914514s DEBUG mutant{id=111}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1187.804910888s DEBUG mutant{id=111}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.006501ms -1187.805149324s DEBUG mutant{id=111}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1188.157671365s DEBUG mutant{id=111}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.560801ms -1188.157705835s TRACE mutant{id=111}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::from_iter([Default::default()]))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -1188.158541351s DEBUG mutant{id=111}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1188.158728038s TRACE mutant{id=112}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdateBuilder::build", return_type: "-> ProgressUpdate", span: Span(57, 5, 61, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(59, 9, 60, 80), package_name: "faktory" } -1188.158823866s DEBUG mutant{id=112}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1188.260075665s DEBUG mutant{id=112}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.265788ms -1188.260198379s DEBUG mutant{id=112}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1188.512716977s DEBUG mutant{id=112}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.561442ms -1188.512773964s TRACE mutant{id=112}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdateBuilder::build", return_type: "-> ProgressUpdate", span: Span(57, 5, 61, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(59, 9, 60, 80), package_name: "faktory" } -1188.513237872s DEBUG mutant{id=112}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1188.513352024s TRACE mutant{id=113}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "write_queues", return_type: "-> Result<(), Error>", span: Span(26, 1, 39, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(33, 5, 38, 11), package_name: "faktory" } -1188.513407302s DEBUG mutant{id=113}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1189.566507642s DEBUG mutant{id=113}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.053111249s -1189.566641460s DEBUG mutant{id=113}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1204.473655274s DEBUG mutant{id=113}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.907048624s -1204.473826865s TRACE mutant{id=113}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "write_queues", return_type: "-> Result<(), Error>", span: Span(26, 1, 39, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(33, 5, 38, 11), package_name: "faktory" } -1204.475711121s DEBUG mutant{id=113}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1204.476818299s TRACE mutant{id=114}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(194, 49, 194, 50), package_name: "faktory" } -1204.477227501s DEBUG mutant{id=114}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1205.631995877s DEBUG mutant{id=114}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.154802499s -1205.632135666s DEBUG mutant{id=114}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1220.549936013s DEBUG mutant{id=114}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.917848289s -1220.550034962s TRACE mutant{id=114}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(194, 49, 194, 50), package_name: "faktory" } -1220.551254292s DEBUG mutant{id=114}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1220.551666305s TRACE mutant{id=115}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "+", genre: BinaryOperator, span: Span(109, 36, 109, 37), package_name: "faktory" } -1220.551864906s DEBUG mutant{id=115}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1221.806170265s DEBUG mutant{id=115}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.254323973s -1221.806221958s DEBUG mutant{id=115}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1236.957902969s DEBUG mutant{id=115}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.151693409s -1236.957976785s TRACE mutant{id=115}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "+", genre: BinaryOperator, span: Span(109, 36, 109, 37), package_name: "faktory" } -1236.959924881s DEBUG mutant{id=115}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1236.960414483s TRACE mutant{id=116}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Progress::update_percent", return_type: "-> ProgressUpdate", span: Span(142, 5, 150, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(146, 9, 149, 21), package_name: "faktory" } -1236.960697331s DEBUG mutant{id=116}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1237.062618571s DEBUG mutant{id=116}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.956615ms -1237.062701797s DEBUG mutant{id=116}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1237.364462955s DEBUG mutant{id=116}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=301.774254ms -1237.364614882s TRACE mutant{id=116}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Progress::update_percent", return_type: "-> ProgressUpdate", span: Span(142, 5, 150, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(146, 9, 149, 21), package_name: "faktory" } -1237.366411167s DEBUG mutant{id=116}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1237.366915717s TRACE mutant{id=117}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Fail::set_backtrace", return_type: "", span: Span(112, 5, 114, 6) }), replacement: "()", genre: FnValue, span: Span(113, 9, 113, 32), package_name: "faktory" } -1237.367139978s DEBUG mutant{id=117}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1238.271302734s DEBUG mutant{id=117}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.193173ms -1238.271529451s DEBUG mutant{id=117}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1253.272776798s DEBUG mutant{id=117}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.00129744s -1253.272831799s TRACE mutant{id=117}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Fail::set_backtrace", return_type: "", span: Span(112, 5, 114, 6) }), replacement: "()", genre: FnValue, span: Span(113, 9, 113, 32), package_name: "faktory" } -1253.274319537s DEBUG mutant{id=117}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1253.274533399s TRACE mutant{id=118}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobId::random", return_type: "-> Self", span: Span(41, 5, 44, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(43, 9, 43, 38), package_name: "faktory" } -1253.274676559s DEBUG mutant{id=118}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1254.228379070s DEBUG mutant{id=118}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=953.721702ms -1254.228487615s DEBUG mutant{id=118}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1258.992259381s DEBUG mutant{id=118}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.763811859s -1258.992341765s TRACE mutant{id=118}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobId::random", return_type: "-> Self", span: Span(41, 5, 44, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(43, 9, 43, 38), package_name: "faktory" } -1258.993448789s DEBUG mutant{id=118}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1258.993858183s TRACE mutant{id=119}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(37, 5, 62, 33), package_name: "faktory" } -1258.994040640s DEBUG mutant{id=119}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1259.245846364s DEBUG mutant{id=119}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.824925ms -1259.245883363s TRACE mutant{id=119}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(37, 5, 62, 33), package_name: "faktory" } -1259.246376354s DEBUG mutant{id=119}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1259.246541580s TRACE mutant{id=120}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1259.246604064s DEBUG mutant{id=120}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1259.447962248s DEBUG mutant{id=120}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.367725ms -1259.447994085s TRACE mutant{id=120}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1259.448521844s DEBUG mutant{id=120}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1259.448602682s TRACE mutant{id=121}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "==", genre: BinaryOperator, span: Span(16, 21, 16, 23), package_name: "faktory" } -1259.448644313s DEBUG mutant{id=121}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1260.352475834s DEBUG mutant{id=121}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.838234ms -1260.352547283s DEBUG mutant{id=121}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1265.018229237s DEBUG mutant{id=121}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.665703481s -1265.018418004s TRACE mutant{id=121}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "==", genre: BinaryOperator, span: Span(16, 21, 16, 23), package_name: "faktory" } -1265.018934894s DEBUG mutant{id=121}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1265.019007167s TRACE mutant{id=122}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::new(Default::default())))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } -1265.019042345s DEBUG mutant{id=122}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1265.821461666s DEBUG mutant{id=122}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=802.424197ms -1265.821586622s DEBUG mutant{id=122}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1266.023234020s DEBUG mutant{id=122}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.667839ms -1266.023347653s TRACE mutant{id=122}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::new(Default::default())))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } -1266.024585617s DEBUG mutant{id=122}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1266.025114800s TRACE mutant{id=123}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "-=", genre: BinaryOperator, span: Span(232, 25, 232, 27), package_name: "faktory" } -1266.025340875s DEBUG mutant{id=123}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1267.079128458s DEBUG mutant{id=123}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.053808249s -1267.079191290s DEBUG mutant{id=123}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1281.785273069s DEBUG mutant{id=123}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.706099035s -1281.785517612s TRACE mutant{id=123}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "-=", genre: BinaryOperator, span: Span(232, 25, 232, 27), package_name: "faktory" } -1281.787541180s DEBUG mutant{id=123}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1281.788190555s TRACE mutant{id=124}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::new(Default::default())]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1281.788438855s DEBUG mutant{id=124}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1282.041228823s DEBUG mutant{id=124}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.815904ms -1282.041314168s TRACE mutant{id=124}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::new(Default::default())]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1282.042004705s DEBUG mutant{id=124}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1282.042091834s TRACE mutant{id=125}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "==", genre: BinaryOperator, span: Span(41, 41, 41, 42), package_name: "faktory" } -1282.042144721s DEBUG mutant{id=125}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1282.995535649s DEBUG mutant{id=125}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=953.399434ms -1282.995729365s DEBUG mutant{id=125}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1287.561189369s DEBUG mutant{id=125}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.565498933s -1287.561259750s TRACE mutant{id=125}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "==", genre: BinaryOperator, span: Span(41, 41, 41, 42), package_name: "faktory" } -1287.563152488s DEBUG mutant{id=125}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1287.563401327s TRACE mutant{id=126}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::get_progress", return_type: "-> Result, Error>", span: Span(15, 5, 19, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(17, 9, 18, 50), package_name: "faktory" } -1287.563558169s DEBUG mutant{id=126}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1288.518405208s DEBUG mutant{id=126}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=954.874644ms -1288.518630568s DEBUG mutant{id=126}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1288.720067099s DEBUG mutant{id=126}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.483931ms -1288.720152576s TRACE mutant{id=126}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::get_progress", return_type: "-> Result, Error>", span: Span(15, 5, 19, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(17, 9, 18, 50), package_name: "faktory" } -1288.721236319s DEBUG mutant{id=126}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1288.721369926s TRACE mutant{id=127}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_id", return_type: "-> String", span: Span(6, 1, 12, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(7, 5, 11, 19), package_name: "faktory" } -1288.721460724s DEBUG mutant{id=127}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1289.625366247s DEBUG mutant{id=127}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.931769ms -1289.625600017s DEBUG mutant{id=127}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1291.131091293s DEBUG mutant{id=127}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=1.505517196s -1291.131294232s TRACE mutant{id=127}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_id", return_type: "-> String", span: Span(6, 1, 12, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(7, 5, 11, 19), package_name: "faktory" } -1291.132236520s DEBUG mutant{id=127}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1291.132328792s TRACE mutant{id=128}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::maybe_bid", return_type: "-> Result, Error>", span: Span(52, 5, 68, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(53, 9, 67, 10), package_name: "faktory" } -1291.132389300s DEBUG mutant{id=128}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1292.036545344s DEBUG mutant{id=128}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.16785ms -1292.036627324s DEBUG mutant{id=128}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1306.936403461s DEBUG mutant{id=128}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.899790295s -1306.936496815s TRACE mutant{id=128}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::maybe_bid", return_type: "-> Result, Error>", span: Span(52, 5, 68, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(53, 9, 67, 10), package_name: "faktory" } -1306.939250184s DEBUG mutant{id=128}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1306.939636394s TRACE mutant{id=129}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::new())", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -1306.939912206s DEBUG mutant{id=129}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1307.041758333s DEBUG mutant{id=129}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.881347ms -1307.041925111s DEBUG mutant{id=129}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1307.243552617s DEBUG mutant{id=129}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.658737ms -1307.243646994s TRACE mutant{id=129}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::new())", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -1307.244745093s DEBUG mutant{id=129}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1307.245052575s TRACE mutant{id=130}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::description", return_type: "-> Self", span: Span(177, 5, 181, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(179, 9, 180, 13), package_name: "faktory" } -1307.245200079s DEBUG mutant{id=130}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1307.296188314s DEBUG mutant{id=130}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=51.003479ms -1307.296258951s DEBUG mutant{id=130}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1307.497369961s DEBUG mutant{id=130}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.128326ms -1307.497395324s TRACE mutant{id=130}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::description", return_type: "-> Self", span: Span(177, 5, 181, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(179, 9, 180, 13), package_name: "faktory" } -1307.497882973s DEBUG mutant{id=130}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1307.498048719s TRACE mutant{id=131}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::new(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1307.498111859s DEBUG mutant{id=131}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1307.699147389s DEBUG mutant{id=131}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.042465ms -1307.699190883s TRACE mutant{id=131}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::new(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1307.700520239s DEBUG mutant{id=131}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1307.700685817s TRACE mutant{id=132}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_wid", return_type: "-> String", span: Span(18, 1, 20, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(19, 5, 19, 36), package_name: "faktory" } -1307.700792576s DEBUG mutant{id=132}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1308.604004300s DEBUG mutant{id=132}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.228677ms -1308.604071792s DEBUG mutant{id=132}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1323.854951500s DEBUG mutant{id=132}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.250899396s -1323.855032472s TRACE mutant{id=132}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_wid", return_type: "-> String", span: Span(18, 1, 20, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(19, 5, 19, 36), package_name: "faktory" } -1323.856998865s DEBUG mutant{id=132}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1323.857921543s TRACE mutant{id=133}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::from(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1323.858308392s DEBUG mutant{id=133}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1324.161051213s DEBUG mutant{id=133}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.780354ms -1324.161135451s TRACE mutant{id=133}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::from(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1324.162088056s DEBUG mutant{id=133}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1324.162373959s TRACE mutant{id=134}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::queue_resume", return_type: "-> Result<(), Error>", span: Span(384, 5, 393, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(389, 9, 392, 19), package_name: "faktory" } -1324.162482859s DEBUG mutant{id=134}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1325.266322973s DEBUG mutant{id=134}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.103854178s -1325.266441384s DEBUG mutant{id=134}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1339.982508056s DEBUG mutant{id=134}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.716088004s -1339.982580244s TRACE mutant{id=134}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::queue_resume", return_type: "-> Result<(), Error>", span: Span(384, 5, 393, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(389, 9, 392, 19), package_name: "faktory" } -1339.984687694s DEBUG mutant{id=134}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1339.984948476s TRACE mutant{id=135}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::add", return_type: "-> Result, Error>", span: Span(21, 5, 29, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(27, 9, 28, 47), package_name: "faktory" } -1339.985112646s DEBUG mutant{id=135}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1340.990038342s DEBUG mutant{id=135}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004956949s -1340.990183697s DEBUG mutant{id=135}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1355.946232334s DEBUG mutant{id=135}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.956088905s -1355.946276336s TRACE mutant{id=135}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::add", return_type: "-> Result, Error>", span: Span(21, 5, 29, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(27, 9, 28, 47), package_name: "faktory" } -1355.947454060s DEBUG mutant{id=135}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1355.947649401s TRACE mutant{id=136}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::reconnect", return_type: "-> io::Result", span: Span(38, 5, 41, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(39, 9, 40, 41), package_name: "faktory" } -1355.947796115s DEBUG mutant{id=136}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1356.199670583s DEBUG mutant{id=136}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.893986ms -1356.199721061s TRACE mutant{id=136}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::reconnect", return_type: "-> io::Result", span: Span(38, 5, 41, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(39, 9, 40, 41), package_name: "faktory" } -1356.201568508s DEBUG mutant{id=136}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1356.202111859s TRACE mutant{id=137}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_json", return_type: "-> Result, Error>", span: Span(405, 5, 410, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(409, 9, 409, 52), package_name: "faktory" } -1356.202363750s DEBUG mutant{id=137}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1357.206721588s DEBUG mutant{id=137}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004384071s -1357.206828281s DEBUG mutant{id=137}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1371.965331426s DEBUG mutant{id=137}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.758519724s -1371.965394553s TRACE mutant{id=137}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_json", return_type: "-> Result, Error>", span: Span(405, 5, 410, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(409, 9, 409, 52), package_name: "faktory" } -1371.967473599s DEBUG mutant{id=137}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1371.968224368s TRACE mutant{id=138}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(194, 49, 194, 50), package_name: "faktory" } -1371.968515850s DEBUG mutant{id=138}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1373.324406289s DEBUG mutant{id=138}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.355922169s -1373.324563034s DEBUG mutant{id=138}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1388.734631154s DEBUG mutant{id=138}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.410096144s -1388.734704466s TRACE mutant{id=138}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(194, 49, 194, 50), package_name: "faktory" } -1388.737395819s DEBUG mutant{id=138}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1388.738417751s TRACE mutant{id=139}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1388.738846603s DEBUG mutant{id=139}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1389.943558489s DEBUG mutant{id=139}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.204748092s -1389.943626466s DEBUG mutant{id=139}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1404.998339261s DEBUG mutant{id=139}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.054723015s -1404.998525170s TRACE mutant{id=139}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1405.001180334s DEBUG mutant{id=139}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1405.001783542s TRACE mutant{id=140}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_until_success", return_type: "-> &mut Self", span: Span(72, 5, 80, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(79, 9, 79, 59), package_name: "faktory" } -1405.002250098s DEBUG mutant{id=140}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1406.106605543s DEBUG mutant{id=140}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104387929s -1406.106727999s DEBUG mutant{id=140}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1406.358594819s DEBUG mutant{id=140}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.891141ms -1406.358628251s TRACE mutant{id=140}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_until_success", return_type: "-> &mut Self", span: Span(72, 5, 80, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(79, 9, 79, 59), package_name: "faktory" } -1406.359558740s DEBUG mutant{id=140}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1406.359932419s TRACE mutant{id=141}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1406.360061944s DEBUG mutant{id=141}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1406.611991337s DEBUG mutant{id=141}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.943838ms -1406.612068235s TRACE mutant{id=141}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1406.612798576s DEBUG mutant{id=141}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1406.613053255s TRACE mutant{id=142}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(172, 29, 172, 30), package_name: "faktory" } -1406.613166067s DEBUG mutant{id=142}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1407.667380423s DEBUG mutant{id=142}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054223034s -1407.667525357s DEBUG mutant{id=142}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1412.637729414s DEBUG mutant{id=142}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.970256331s -1412.637849438s TRACE mutant{id=142}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(172, 29, 172, 30), package_name: "faktory" } -1412.639575708s DEBUG mutant{id=142}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1412.639738982s TRACE mutant{id=143}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::id", return_type: "-> &BatchId", span: Span(12, 5, 15, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(14, 9, 14, 18), package_name: "faktory" } -1412.639866726s DEBUG mutant{id=143}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1413.694343955s DEBUG mutant{id=143}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054497438s -1413.694404927s DEBUG mutant{id=143}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1413.996849982s DEBUG mutant{id=143}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.461507ms -1413.996881380s TRACE mutant{id=143}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::id", return_type: "-> &BatchId", span: Span(12, 5, 15, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(14, 9, 14, 18), package_name: "faktory" } -1413.997745798s DEBUG mutant{id=143}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1413.997985878s TRACE mutant{id=144}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::failure", return_type: "-> &Option", span: Span(258, 5, 261, 6) }), replacement: "&None", genre: FnValue, span: Span(260, 9, 260, 22), package_name: "faktory" } -1413.998093595s DEBUG mutant{id=144}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1414.851907019s DEBUG mutant{id=144}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=853.825909ms -1414.852064902s DEBUG mutant{id=144}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1429.871691628s DEBUG mutant{id=144}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.019659083s -1429.871750284s TRACE mutant{id=144}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::failure", return_type: "-> &Option", span: Span(258, 5, 261, 6) }), replacement: "&None", genre: FnValue, span: Span(260, 9, 260, 22), package_name: "faktory" } -1429.873933550s DEBUG mutant{id=144}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1429.874213779s TRACE mutant{id=145}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::deref_mut", return_type: "-> &mut Self::Target", span: Span(37, 5, 39, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(38, 9, 38, 20), package_name: "faktory" } -1429.874417227s DEBUG mutant{id=145}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1430.929294084s DEBUG mutant{id=145}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054900137s -1430.929482785s DEBUG mutant{id=145}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1445.775861066s DEBUG mutant{id=145}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.846469846s -1445.775907940s TRACE mutant{id=145}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::deref_mut", return_type: "-> &mut Self::Target", span: Span(37, 5, 39, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(38, 9, 38, 20), package_name: "faktory" } -1445.777210829s DEBUG mutant{id=145}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1445.777405014s TRACE mutant{id=146}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::from(Default::default())))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1445.777572740s DEBUG mutant{id=146}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1446.680830421s DEBUG mutant{id=146}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.278466ms -1446.681053169s DEBUG mutant{id=146}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1446.882700032s DEBUG mutant{id=146}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.694312ms -1446.882794873s TRACE mutant{id=146}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::from(Default::default())))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -1446.883600721s DEBUG mutant{id=146}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1446.883815576s TRACE mutant{id=147}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::clone", return_type: "-> Self", span: Span(207, 5, 214, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(208, 9, 213, 10), package_name: "faktory" } -1446.883914729s DEBUG mutant{id=147}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1446.935032548s DEBUG mutant{id=147}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=51.132016ms -1446.935070636s DEBUG mutant{id=147}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1447.136380556s DEBUG mutant{id=147}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.321247ms -1447.136435689s TRACE mutant{id=147}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::clone", return_type: "-> Self", span: Span(207, 5, 214, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(208, 9, 213, 10), package_name: "faktory" } -1447.138172504s DEBUG mutant{id=147}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1447.138713399s TRACE mutant{id=148}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::fetch", return_type: "-> Result, Error>", span: Span(282, 5, 290, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(286, 9, 289, 19), package_name: "faktory" } -1447.138933550s DEBUG mutant{id=148}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1447.341194148s DEBUG mutant{id=148}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=202.285792ms -1447.341230623s TRACE mutant{id=148}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::fetch", return_type: "-> Result, Error>", span: Span(282, 5, 290, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(286, 9, 289, 19), package_name: "faktory" } -1447.342643281s DEBUG mutant{id=148}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1447.343021540s TRACE mutant{id=149}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1447.343180428s DEBUG mutant{id=149}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1447.595195659s DEBUG mutant{id=149}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.032391ms -1447.595379642s TRACE mutant{id=149}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1447.598150981s DEBUG mutant{id=149}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1447.598896642s TRACE mutant{id=150}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::new()))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1447.603556055s DEBUG mutant{id=150}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1447.806637325s DEBUG mutant{id=150}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=203.110124ms -1447.806681031s TRACE mutant{id=150}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::new()))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1447.807232210s DEBUG mutant{id=150}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1447.807395839s TRACE mutant{id=151}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(String::new(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1447.807452027s DEBUG mutant{id=151}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1449.011866744s DEBUG mutant{id=151}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.204419917s -1449.011946165s DEBUG mutant{id=151}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1464.515686303s DEBUG mutant{id=151}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.503749657s -1464.515756924s TRACE mutant{id=151}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::from_iter([(String::new(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1464.518902339s DEBUG mutant{id=151}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1464.519561352s TRACE mutant{id=152}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(160, 29, 160, 30), package_name: "faktory" } -1464.519909728s DEBUG mutant{id=152}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1465.724967949s DEBUG mutant{id=152}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.205094693s -1465.725040429s DEBUG mutant{id=152}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1470.342448355s DEBUG mutant{id=152}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.617419094s -1470.342608673s TRACE mutant{id=152}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(160, 29, 160, 30), package_name: "faktory" } -1470.343590343s DEBUG mutant{id=152}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1470.343682093s TRACE mutant{id=153}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::reset", return_type: "", span: Span(65, 5, 69, 6) }), replacement: "()", genre: FnValue, span: Span(66, 9, 68, 34), package_name: "faktory" } -1470.343745443s DEBUG mutant{id=153}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1471.348097140s DEBUG mutant{id=153}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004359189s -1471.348363418s DEBUG mutant{id=153}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1486.109940635s DEBUG mutant{id=153}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.761637114s -1486.110100114s TRACE mutant{id=153}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::reset", return_type: "", span: Span(65, 5, 69, 6) }), replacement: "()", genre: FnValue, span: Span(66, 9, 68, 34), package_name: "faktory" } -1486.112287114s DEBUG mutant{id=153}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1486.112569127s TRACE mutant{id=154}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -1486.112754152s DEBUG mutant{id=154}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1486.967359339s DEBUG mutant{id=154}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=854.640004ms -1486.967400618s DEBUG mutant{id=154}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1501.872833945s DEBUG mutant{id=154}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.905443577s -1501.872992166s TRACE mutant{id=154}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -1501.875315923s DEBUG mutant{id=154}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1501.875934260s TRACE mutant{id=155}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::kind", return_type: "-> &str", span: Span(248, 5, 251, 6) }), replacement: "\"xyzzy\"", genre: FnValue, span: Span(250, 9, 250, 19), package_name: "faktory" } -1501.876190758s DEBUG mutant{id=155}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1502.729781867s DEBUG mutant{id=155}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=853.619264ms -1502.729872504s DEBUG mutant{id=155}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1507.396111380s DEBUG mutant{id=155}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.666265879s -1507.396266812s TRACE mutant{id=155}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::kind", return_type: "-> &str", span: Span(248, 5, 251, 6) }), replacement: "\"xyzzy\"", genre: FnValue, span: Span(250, 9, 250, 19), package_name: "faktory" } -1507.398578942s DEBUG mutant{id=155}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1507.399289210s TRACE mutant{id=156}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::new(Ok(())))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -1507.399583527s DEBUG mutant{id=156}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1507.652253446s DEBUG mutant{id=156}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.707584ms -1507.652291002s TRACE mutant{id=156}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::new(Ok(())))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -1507.653520505s DEBUG mutant{id=156}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1507.653804350s TRACE mutant{id=157}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_on_all_workers", return_type: "-> Result<(), Error>", span: Span(185, 5, 221, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(186, 9, 220, 15), package_name: "faktory" } -1507.653941357s DEBUG mutant{id=157}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1508.908213086s DEBUG mutant{id=157}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.25428876s -1508.908342743s DEBUG mutant{id=157}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1523.872026205s DEBUG mutant{id=157}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.963709438s -1523.872187981s TRACE mutant{id=157}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_on_all_workers", return_type: "-> Result<(), Error>", span: Span(185, 5, 221, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(186, 9, 220, 15), package_name: "faktory" } -1523.875310454s DEBUG mutant{id=157}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1523.875616530s TRACE mutant{id=158}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_jid", return_type: "-> String", span: Span(14, 1, 16, 2) }), replacement: "String::new()", genre: FnValue, span: Span(15, 5, 15, 33), package_name: "faktory" } -1523.875878267s DEBUG mutant{id=158}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1525.031275084s DEBUG mutant{id=158}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.155431621s -1525.031439279s DEBUG mutant{id=158}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1529.999952882s DEBUG mutant{id=158}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.968572901s -1530.000141156s TRACE mutant{id=158}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_jid", return_type: "-> String", span: Span(14, 1, 16, 2) }), replacement: "String::new()", genre: FnValue, span: Span(15, 5, 15, 33), package_name: "faktory" } -1530.003090258s DEBUG mutant{id=158}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1530.003518622s TRACE mutant{id=159}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "+", genre: BinaryOperator, span: Span(78, 24, 78, 25), package_name: "faktory" } -1530.003763105s DEBUG mutant{id=159}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1530.808748879s DEBUG mutant{id=159}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=805.017925ms -1530.809026272s DEBUG mutant{id=159}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1545.383555002s DEBUG mutant{id=159}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.574567011s -1545.383729981s TRACE mutant{id=159}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "+", genre: BinaryOperator, span: Span(78, 24, 78, 25), package_name: "faktory" } -1545.386102120s DEBUG mutant{id=159}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1545.386711761s TRACE mutant{id=160}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::args", return_type: "-> &[serde_json::Value]", span: Span(253, 5, 256, 6) }), replacement: "Vec::leak(vec![Default::default()])", genre: FnValue, span: Span(255, 9, 255, 19), package_name: "faktory" } -1545.386980680s DEBUG mutant{id=160}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1546.341855119s DEBUG mutant{id=160}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=954.912982ms -1546.341914543s DEBUG mutant{id=160}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1560.863130569s DEBUG mutant{id=160}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.5212347s -1560.863248915s TRACE mutant{id=160}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::args", return_type: "-> &[serde_json::Value]", span: Span(253, 5, 256, 6) }), replacement: "Vec::leak(vec![Default::default()])", genre: FnValue, span: Span(255, 9, 255, 19), package_name: "faktory" } -1560.864777794s DEBUG mutant{id=160}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1560.865057175s TRACE mutant{id=161}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "*", genre: BinaryOperator, span: Span(46, 36, 46, 37), package_name: "faktory" } -1560.865190477s DEBUG mutant{id=161}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1561.768873344s DEBUG mutant{id=161}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.70228ms -1561.768974963s DEBUG mutant{id=161}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1562.020702846s DEBUG mutant{id=161}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.745145ms -1562.020785673s TRACE mutant{id=161}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "*", genre: BinaryOperator, span: Span(46, 36, 46, 37), package_name: "faktory" } -1562.021679025s DEBUG mutant{id=161}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1562.021825227s TRACE mutant{id=162}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(242, 5, 244, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(243, 9, 243, 16), package_name: "faktory" } -1562.021900531s DEBUG mutant{id=162}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1562.223370303s DEBUG mutant{id=162}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.48099ms -1562.223423674s TRACE mutant{id=162}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(242, 5, 244, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(243, 9, 243, 16), package_name: "faktory" } -1562.225659641s DEBUG mutant{id=162}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1562.225943689s TRACE mutant{id=163}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "<", genre: BinaryOperator, span: Span(93, 70, 93, 72), package_name: "faktory" } -1562.226106819s DEBUG mutant{id=163}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1563.029919378s DEBUG mutant{id=163}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.832429ms -1563.029982268s DEBUG mutant{id=163}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1577.834550140s DEBUG mutant{id=163}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.804588558s -1577.834614135s TRACE mutant{id=163}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "<", genre: BinaryOperator, span: Span(93, 70, 93, 72), package_name: "faktory" } -1577.835487153s DEBUG mutant{id=163}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1577.835727635s TRACE mutant{id=164}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "check_protocols_match", return_type: "-> Result<(), Error>", span: Span(22, 1, 31, 2) }), replacement: "==", genre: BinaryOperator, span: Span(23, 12, 23, 14), package_name: "faktory" } -1577.835846322s DEBUG mutant{id=164}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1578.639175842s DEBUG mutant{id=164}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.341183ms -1578.639438210s DEBUG mutant{id=164}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1583.407456476s DEBUG mutant{id=164}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.768076281s -1583.407535789s TRACE mutant{id=164}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "check_protocols_match", return_type: "-> Result<(), Error>", span: Span(22, 1, 31, 2) }), replacement: "==", genre: BinaryOperator, span: Span(23, 12, 23, 14), package_name: "faktory" } -1583.410563493s DEBUG mutant{id=164}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1583.410960022s TRACE mutant{id=165}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } -1583.411196625s DEBUG mutant{id=165}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1584.215651483s DEBUG mutant{id=165}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=804.504316ms -1584.215788939s DEBUG mutant{id=165}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1584.669346880s DEBUG mutant{id=165}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=453.607474ms -1584.669432624s TRACE mutant{id=165}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } -1584.671149854s DEBUG mutant{id=165}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1584.671603417s TRACE mutant{id=166}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_ok", return_type: "-> Result<(), Error>", span: Span(401, 5, 403, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(402, 9, 402, 50), package_name: "faktory" } -1584.671823812s DEBUG mutant{id=166}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1585.725960591s DEBUG mutant{id=166}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054164901s -1585.726012900s DEBUG mutant{id=166}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1600.590344530s DEBUG mutant{id=166}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.864345402s -1600.590433404s TRACE mutant{id=166}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_ok", return_type: "-> Result<(), Error>", span: Span(401, 5, 403, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(402, 9, 402, 50), package_name: "faktory" } -1600.593915026s DEBUG mutant{id=166}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1600.594677421s TRACE mutant{id=167}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_ok", return_type: "-> Result<(), Error>", span: Span(109, 1, 118, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(112, 14, 112, 16), package_name: "faktory" } -1600.595076668s DEBUG mutant{id=167}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1601.699610258s DEBUG mutant{id=167}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104586816s -1601.699706775s DEBUG mutant{id=167}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1606.516729709s DEBUG mutant{id=167}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.817040482s -1606.516871877s TRACE mutant{id=167}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_ok", return_type: "-> Result<(), Error>", span: Span(109, 1, 118, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(112, 14, 112, 16), package_name: "faktory" } -1606.518638194s DEBUG mutant{id=167}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1606.519192272s TRACE mutant{id=168}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "0", genre: FnValue, span: Span(228, 9, 241, 16), package_name: "faktory" } -1606.519406954s DEBUG mutant{id=168}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1607.674764078s DEBUG mutant{id=168}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.155377566s -1607.674923206s DEBUG mutant{id=168}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1698.714707257s DEBUG mutant{id=168}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.039821925s -1698.714795463s DEBUG mutant{id=168}:run{phase=Test}:terminate_child{pid=614364}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -1698.714958147s TRACE mutant{id=168}:run{phase=Test}:terminate_child{pid=614364}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -1698.722327881s DEBUG mutant{id=168}:run{phase=Test}:terminate_child{pid=614364}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -1698.722422938s DEBUG mutant{id=168}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.04756018s -1698.722459498s TRACE mutant{id=168}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "0", genre: FnValue, span: Span(228, 9, 241, 16), package_name: "faktory" } -1698.725903124s DEBUG mutant{id=168}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -1698.726718050s TRACE mutant{id=169}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::add_to_custom_data", return_type: "-> &mut Self", span: Span(175, 5, 184, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(181, 9, 183, 13), package_name: "faktory" } -1698.727138243s DEBUG mutant{id=169}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1699.079932058s DEBUG mutant{id=169}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.834306ms -1699.079972700s TRACE mutant{id=169}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::add_to_custom_data", return_type: "-> &mut Self", span: Span(175, 5, 184, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(181, 9, 183, 13), package_name: "faktory" } -1699.081764639s DEBUG mutant{id=169}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1699.082373527s TRACE mutant{id=170}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "*=", genre: BinaryOperator, span: Span(232, 25, 232, 27), package_name: "faktory" } -1699.082646430s DEBUG mutant{id=170}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1700.337225244s DEBUG mutant{id=170}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.25460428s -1700.337307240s DEBUG mutant{id=170}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1791.349668094s DEBUG mutant{id=170}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.012361845s -1791.349779208s DEBUG mutant{id=170}:run{phase=Test}:terminate_child{pid=617528}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -1791.349916641s TRACE mutant{id=170}:run{phase=Test}:terminate_child{pid=617528}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -1791.353114701s DEBUG mutant{id=170}:run{phase=Test}:terminate_child{pid=617528}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -1791.353186022s DEBUG mutant{id=170}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.015893608s -1791.353279882s TRACE mutant{id=170}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::force_fail_all_workers", return_type: "-> usize", span: Span(227, 5, 242, 6) }), replacement: "*=", genre: BinaryOperator, span: Span(232, 25, 232, 27), package_name: "faktory" } -1791.355566155s DEBUG mutant{id=170}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -1791.356064451s TRACE mutant{id=171}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } -1791.356302315s DEBUG mutant{id=171}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1792.410441777s DEBUG mutant{id=171}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054169881s -1792.410531770s DEBUG mutant{id=171}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1792.863385270s DEBUG mutant{id=171}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.8833ms -1792.863511287s TRACE mutant{id=171}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_read", return_type: "-> std::task::Poll>", span: Span(141, 5, 147, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(146, 9, 146, 49), package_name: "faktory" } -1792.865503942s DEBUG mutant{id=171}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1792.866178204s TRACE mutant{id=172}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "+", genre: BinaryOperator, span: Span(359, 24, 359, 25), package_name: "faktory" } -1792.866482940s DEBUG mutant{id=172}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1793.970820606s DEBUG mutant{id=172}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104366222s -1793.970928019s DEBUG mutant{id=172}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1808.976823122s DEBUG mutant{id=172}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.005910506s -1808.976893625s TRACE mutant{id=172}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "+", genre: BinaryOperator, span: Span(359, 24, 359, 25), package_name: "faktory" } -1808.979642228s DEBUG mutant{id=172}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1808.980401788s TRACE mutant{id=173}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(47, 39, 47, 41), package_name: "faktory" } -1808.980727104s DEBUG mutant{id=173}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1810.185324480s DEBUG mutant{id=173}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.204625717s -1810.185453969s DEBUG mutant{id=173}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1815.001704450s DEBUG mutant{id=173}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.816284293s -1815.001830369s TRACE mutant{id=173}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "!=", genre: BinaryOperator, span: Span(47, 39, 47, 41), package_name: "faktory" } -1815.004343075s DEBUG mutant{id=173}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1815.004683166s TRACE mutant{id=174}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::from", return_type: "-> Self", span: Span(173, 5, 175, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(174, 9, 174, 25), package_name: "faktory" } -1815.004861152s DEBUG mutant{id=174}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1815.357085028s DEBUG mutant{id=174}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.245445ms -1815.357129481s TRACE mutant{id=174}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::from", return_type: "-> Self", span: Span(173, 5, 175, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(174, 9, 174, 25), package_name: "faktory" } -1815.359020229s DEBUG mutant{id=174}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1815.359253793s TRACE mutant{id=175}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: ">", genre: BinaryOperator, span: Span(41, 41, 41, 42), package_name: "faktory" } -1815.359391447s DEBUG mutant{id=175}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1816.563717875s DEBUG mutant{id=175}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.204346593s -1816.563776052s DEBUG mutant{id=175}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1821.830516336s DEBUG mutant{id=175}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=5.266755192s -1821.830709541s TRACE mutant{id=175}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: ">", genre: BinaryOperator, span: Span(41, 41, 41, 42), package_name: "faktory" } -1821.833481265s DEBUG mutant{id=175}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1821.834278112s TRACE mutant{id=176}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdate::set", return_type: "-> ProgressUpdate", span: Span(42, 5, 45, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(44, 9, 44, 62), package_name: "faktory" } -1821.834579335s DEBUG mutant{id=176}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1822.839342026s DEBUG mutant{id=176}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004796503s -1822.839412761s DEBUG mutant{id=176}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1823.041029694s DEBUG mutant{id=176}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.627772ms -1823.041214478s TRACE mutant{id=176}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdate::set", return_type: "-> ProgressUpdate", span: Span(42, 5, 45, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(44, 9, 44, 62), package_name: "faktory" } -1823.044445381s DEBUG mutant{id=176}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1823.045171978s TRACE mutant{id=177}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_job", return_type: "-> Result<(), Failed>", span: Span(169, 5, 175, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(170, 9, 174, 60), package_name: "faktory" } -1823.045529943s DEBUG mutant{id=177}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1824.100639259s DEBUG mutant{id=177}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.055154445s -1824.100774558s DEBUG mutant{id=177}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1828.916640092s DEBUG mutant{id=177}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.815936552s -1828.916728575s TRACE mutant{id=177}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run_job", return_type: "-> Result<(), Failed>", span: Span(169, 5, 175, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(170, 9, 174, 60), package_name: "faktory" } -1828.919856810s DEBUG mutant{id=177}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1828.920600480s TRACE mutant{id=178}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::fetch", return_type: "-> Result, Error>", span: Span(282, 5, 290, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(286, 9, 289, 19), package_name: "faktory" } -1828.920921792s DEBUG mutant{id=178}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1830.125968288s DEBUG mutant{id=178}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.2050849s -1830.126112976s DEBUG mutant{id=178}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1845.122648673s DEBUG mutant{id=178}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.996604734s -1845.122700850s TRACE mutant{id=178}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::fetch", return_type: "-> Result, Error>", span: Span(282, 5, 290, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(286, 9, 289, 19), package_name: "faktory" } -1845.123529077s DEBUG mutant{id=178}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1845.123702854s TRACE mutant{id=179}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, None))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1845.123772245s DEBUG mutant{id=179}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1846.477900481s DEBUG mutant{id=179}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.354141965s -1846.477978015s DEBUG mutant{id=179}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1862.286119034s DEBUG mutant{id=179}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.80816795s -1862.286231377s TRACE mutant{id=179}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, None))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1862.287889333s DEBUG mutant{id=179}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1862.288410302s TRACE mutant{id=180}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1862.294128770s DEBUG mutant{id=180}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1863.198202245s DEBUG mutant{id=180}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.119908ms -1863.198324526s DEBUG mutant{id=180}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1877.854069800s DEBUG mutant{id=180}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.655767716s -1877.854277274s TRACE mutant{id=180}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -1877.856147283s DEBUG mutant{id=180}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1877.856381564s TRACE mutant{id=181}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "&&", genre: BinaryOperator, span: Span(23, 33, 23, 35), package_name: "faktory" } -1877.856558228s DEBUG mutant{id=181}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1878.960760702s DEBUG mutant{id=181}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104242291s -1878.960926034s DEBUG mutant{id=181}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1894.123385784s DEBUG mutant{id=181}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.162493295s -1894.123567749s TRACE mutant{id=181}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "&&", genre: BinaryOperator, span: Span(23, 33, 23, 35), package_name: "faktory" } -1894.127162603s DEBUG mutant{id=181}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1894.127632650s TRACE mutant{id=182}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "*", genre: BinaryOperator, span: Span(110, 38, 110, 39), package_name: "faktory" } -1894.127946671s DEBUG mutant{id=182}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1894.982556095s DEBUG mutant{id=182}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=854.642617ms -1894.982694719s DEBUG mutant{id=182}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1909.696575708s DEBUG mutant{id=182}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.713927599s -1909.696725530s TRACE mutant{id=182}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "*", genre: BinaryOperator, span: Span(110, 38, 110, 39), package_name: "faktory" } -1909.699170720s DEBUG mutant{id=182}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1909.699452583s TRACE mutant{id=183}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "gen_random_jid", return_type: "-> String", span: Span(14, 1, 16, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(15, 5, 15, 33), package_name: "faktory" } -1909.699647787s DEBUG mutant{id=183}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1910.553604986s DEBUG mutant{id=183}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=853.994348ms -1910.553691071s DEBUG mutant{id=183}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1915.468241714s DEBUG mutant{id=183}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.914578645s -1915.468272548s TRACE mutant{id=183}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "gen_random_jid", return_type: "-> String", span: Span(14, 1, 16, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(15, 5, 15, 33), package_name: "faktory" } -1915.469236332s DEBUG mutant{id=183}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1915.469373867s TRACE mutant{id=184}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::register_runner", return_type: "-> &mut Self", span: Span(80, 5, 91, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(89, 9, 90, 13), package_name: "faktory" } -1915.469470608s DEBUG mutant{id=184}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1916.773840593s DEBUG mutant{id=184}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.304388021s -1916.773913489s DEBUG mutant{id=184}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1922.191128480s DEBUG mutant{id=184}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=5.417248946s -1922.191211785s TRACE mutant{id=184}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::register_runner", return_type: "-> &mut Self", span: Span(80, 5, 91, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(89, 9, 90, 13), package_name: "faktory" } -1922.195283956s DEBUG mutant{id=184}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1922.195893513s TRACE mutant{id=185}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_success_to_server", return_type: "-> Result<(), Error>", span: Span(181, 5, 183, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(182, 9, 182, 60), package_name: "faktory" } -1922.196189451s DEBUG mutant{id=185}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1923.300840642s DEBUG mutant{id=185}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104692579s -1923.300914435s DEBUG mutant{id=185}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1938.269523834s DEBUG mutant{id=185}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.968558346s -1938.269599482s TRACE mutant{id=185}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::report_success_to_server", return_type: "-> Result<(), Error>", span: Span(181, 5, 183, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(182, 9, 182, 60), package_name: "faktory" } -1938.271993317s DEBUG mutant{id=185}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1938.272598724s TRACE mutant{id=186}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::new(Default::default())]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1938.272849586s DEBUG mutant{id=186}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1938.575182998s DEBUG mutant{id=186}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.383877ms -1938.575242906s TRACE mutant{id=186}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::new(Default::default())]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -1938.577532588s DEBUG mutant{id=186}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1938.578169379s TRACE mutant{id=187}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(172, 29, 172, 30), package_name: "faktory" } -1938.578443812s DEBUG mutant{id=187}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1939.633188596s DEBUG mutant{id=187}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054778832s -1939.633428311s DEBUG mutant{id=187}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1944.350980589s DEBUG mutant{id=187}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.717593583s -1944.351077849s TRACE mutant{id=187}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(172, 29, 172, 30), package_name: "faktory" } -1944.352924443s DEBUG mutant{id=187}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1944.353112157s TRACE mutant{id=188}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::get_batch_status", return_type: "-> Result, Error>", span: Span(21, 5, 25, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(23, 9, 24, 50), package_name: "faktory" } -1944.353262385s DEBUG mutant{id=188}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1945.407689731s DEBUG mutant{id=188}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054457686s -1945.407852545s DEBUG mutant{id=188}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1960.826491845s DEBUG mutant{id=188}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.418712108s -1960.826651164s TRACE mutant{id=188}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::get_batch_status", return_type: "-> Result, Error>", span: Span(21, 5, 25, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(23, 9, 24, 50), package_name: "faktory" } -1960.829044046s DEBUG mutant{id=188}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1960.829695288s TRACE mutant{id=189}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(244, 5, 246, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(245, 9, 245, 31), package_name: "faktory" } -1960.830000279s DEBUG mutant{id=189}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1961.081953678s DEBUG mutant{id=189}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.007346ms -1961.082019268s TRACE mutant{id=189}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(244, 5, 246, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(245, 9, 245, 31), package_name: "faktory" } -1961.084580419s DEBUG mutant{id=189}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1961.085131102s TRACE mutant{id=190}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::kind", return_type: "-> &str", span: Span(248, 5, 251, 6) }), replacement: "\"\"", genre: FnValue, span: Span(250, 9, 250, 19), package_name: "faktory" } -1961.085368866s DEBUG mutant{id=190}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1961.889231876s DEBUG mutant{id=190}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.902311ms -1961.889284800s DEBUG mutant{id=190}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1966.556549374s DEBUG mutant{id=190}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.667279738s -1966.556701330s TRACE mutant{id=190}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::kind", return_type: "-> &str", span: Span(248, 5, 251, 6) }), replacement: "\"\"", genre: FnValue, span: Span(250, 9, 250, 19), package_name: "faktory" } -1966.558903963s DEBUG mutant{id=190}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -1966.559215560s TRACE mutant{id=191}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "*", genre: BinaryOperator, span: Span(109, 52, 109, 53), package_name: "faktory" } -1966.559394449s DEBUG mutant{id=191}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1967.464127067s DEBUG mutant{id=191}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.752781ms -1967.464348637s DEBUG mutant{id=191}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1982.175890019s DEBUG mutant{id=191}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.711587445s -1982.175955337s TRACE mutant{id=191}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "*", genre: BinaryOperator, span: Span(109, 52, 109, 53), package_name: "faktory" } -1982.178003224s DEBUG mutant{id=191}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1982.178596109s TRACE mutant{id=192}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1982.178846816s DEBUG mutant{id=192}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1982.481154573s DEBUG mutant{id=192}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.340085ms -1982.481317337s TRACE mutant{id=192}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::new(BufStream::from_iter([Default::default()])))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -1982.482859813s DEBUG mutant{id=192}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1982.483064521s TRACE mutant{id=193}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::connect_with", return_type: "-> Result, E>, Error>", span: Span(93, 5, 104, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(99, 9, 103, 74), package_name: "faktory" } -1982.483171672s DEBUG mutant{id=193}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1982.684943745s DEBUG mutant{id=193}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.793947ms -1982.685117726s TRACE mutant{id=193}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::connect_with", return_type: "-> Result, E>, Error>", span: Span(93, 5, 104, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(99, 9, 103, 74), package_name: "faktory" } -1982.685825232s DEBUG mutant{id=193}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1982.685890232s TRACE mutant{id=194}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_provided_or_from_env", return_type: "-> Result", span: Span(30, 1, 32, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(31, 5, 31, 45), package_name: "faktory" } -1982.685941912s DEBUG mutant{id=194}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1982.887158262s DEBUG mutant{id=194}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.228147ms -1982.887228239s TRACE mutant{id=194}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_provided_or_from_env", return_type: "-> Result", span: Span(30, 1, 32, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(31, 5, 31, 45), package_name: "faktory" } -1982.888316167s DEBUG mutant{id=194}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -1982.888431456s TRACE mutant{id=195}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::run", return_type: "-> Result<(), E>", span: Span(75, 5, 77, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(76, 9, 76, 24), package_name: "faktory" } -1982.888510950s DEBUG mutant{id=195}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1983.691426847s DEBUG mutant{id=195}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=802.933147ms -1983.691564471s DEBUG mutant{id=195}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -1998.250485050s DEBUG mutant{id=195}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.558946428s -1998.250633363s TRACE mutant{id=195}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::run", return_type: "-> Result<(), E>", span: Span(75, 5, 77, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(76, 9, 76, 24), package_name: "faktory" } -1998.253123865s DEBUG mutant{id=195}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -1998.253381328s TRACE mutant{id=196}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "host_from_url", return_type: "-> String", span: Span(10, 1, 12, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(11, 5, 11, 74), package_name: "faktory" } -1998.253591625s DEBUG mutant{id=196}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -1999.158351934s DEBUG mutant{id=196}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.79982ms -1999.158495213s DEBUG mutant{id=196}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2003.375153363s DEBUG mutant{id=196}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.216673228s -2003.375325810s TRACE mutant{id=196}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "host_from_url", return_type: "-> String", span: Span(10, 1, 12, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(11, 5, 11, 74), package_name: "faktory" } -2003.378836642s DEBUG mutant{id=196}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2003.379149600s TRACE mutant{id=197}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(28, 23, 28, 25), package_name: "faktory" } -2003.379393676s DEBUG mutant{id=197}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2004.383906940s DEBUG mutant{id=197}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004565817s -2004.384025840s DEBUG mutant{id=197}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2015.972380667s DEBUG mutant{id=197}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=11.588393882s -2015.972442949s TRACE mutant{id=197}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(28, 23, 28, 25), package_name: "faktory" } -2015.975828642s DEBUG mutant{id=197}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2015.976312436s TRACE mutant{id=198}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(269, 5, 274, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(270, 9, 273, 40), package_name: "faktory" } -2015.976565776s DEBUG mutant{id=198}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2017.031322209s DEBUG mutant{id=198}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054794926s -2017.031476990s DEBUG mutant{id=198}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2031.785709408s DEBUG mutant{id=198}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.754283871s -2031.785808250s TRACE mutant{id=198}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::issue", return_type: "-> Result<(), Error>", span: Span(269, 5, 274, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(270, 9, 273, 40), package_name: "faktory" } -2031.787627785s DEBUG mutant{id=198}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2031.787951390s TRACE mutant{id=199}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -2031.788146320s DEBUG mutant{id=199}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2032.791763907s DEBUG mutant{id=199}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.003648618s -2032.791863283s DEBUG mutant{id=199}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2033.293889870s DEBUG mutant{id=199}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=502.042122ms -2033.294012072s TRACE mutant{id=199}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -2033.296508650s DEBUG mutant{id=199}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2033.296758554s TRACE mutant{id=200}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_cuurently_running", return_type: "-> Option", span: Span(18, 5, 20, 6) }), replacement: "None", genre: FnValue, span: Span(19, 9, 19, 32), package_name: "faktory" } -2033.296936798s DEBUG mutant{id=200}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2034.351649428s DEBUG mutant{id=200}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054753137s -2034.351786798s DEBUG mutant{id=200}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2125.396084358s DEBUG mutant{id=200}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.044326475s -2125.396162743s DEBUG mutant{id=200}:run{phase=Test}:terminate_child{pid=679876}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -2125.396236558s TRACE mutant{id=200}:run{phase=Test}:terminate_child{pid=679876}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -2125.399520272s DEBUG mutant{id=200}:run{phase=Test}:terminate_child{pid=679876}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -2125.399600232s DEBUG mutant{id=200}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.047864657s -2125.399626878s TRACE mutant{id=200}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_cuurently_running", return_type: "-> Option", span: Span(18, 5, 20, 6) }), replacement: "None", genre: FnValue, span: Span(19, 9, 19, 32), package_name: "faktory" } -2125.402248688s DEBUG mutant{id=200}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -2125.402752719s TRACE mutant{id=201}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "write_command_and_await_ok", return_type: "-> Result<(), Error>", span: Span(271, 1, 280, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(278, 5, 279, 26), package_name: "faktory" } -2125.403036929s DEBUG mutant{id=201}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2126.557750433s DEBUG mutant{id=201}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.154751679s -2126.557816845s DEBUG mutant{id=201}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2141.366789830s DEBUG mutant{id=201}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.808999835s -2141.366943246s TRACE mutant{id=201}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "write_command_and_await_ok", return_type: "-> Result<(), Error>", span: Span(271, 1, 280, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(278, 5, 279, 26), package_name: "faktory" } -2141.369608968s DEBUG mutant{id=201}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2141.369967379s TRACE mutant{id=202}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -2141.370158231s DEBUG mutant{id=202}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2142.474839241s DEBUG mutant{id=202}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104721716s -2142.474930413s DEBUG mutant{id=202}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2142.877224752s DEBUG mutant{id=202}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.311307ms -2142.877385944s TRACE mutant{id=202}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::from(Ok(()))", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -2142.878229937s DEBUG mutant{id=202}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2142.878317981s TRACE mutant{id=203}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(46, 9, 46, 42), package_name: "faktory" } -2142.878361628s DEBUG mutant{id=203}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2142.929207625s DEBUG mutant{id=203}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=50.851901ms -2142.929256090s DEBUG mutant{id=203}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2143.181165894s DEBUG mutant{id=203}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.924136ms -2143.181338103s TRACE mutant{id=203}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::expires_in", return_type: "-> &mut Self", span: Span(31, 5, 47, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(46, 9, 46, 42), package_name: "faktory" } -2143.183907054s DEBUG mutant{id=203}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2143.184296136s TRACE mutant{id=204}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -2143.184482023s DEBUG mutant{id=204}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2143.286505747s DEBUG mutant{id=204}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=102.060928ms -2143.286719822s DEBUG mutant{id=204}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2143.790120015s DEBUG mutant{id=204}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=503.43141ms -2143.790241119s TRACE mutant{id=204}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::new()", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -2143.792426053s DEBUG mutant{id=204}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2143.793043345s TRACE mutant{id=205}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::new())))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -2143.793275484s DEBUG mutant{id=205}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2144.898356923s DEBUG mutant{id=205}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.105106851s -2144.898510774s DEBUG mutant{id=205}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2159.954174995s DEBUG mutant{id=205}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.055690163s -2159.954335737s TRACE mutant{id=205}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((1, Some(HashMap::new())))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -2159.957049608s DEBUG mutant{id=205}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2159.957401582s TRACE mutant{id=206}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::fmt", return_type: "-> std::fmt::Result", span: Span(101, 5, 112, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(102, 9, 111, 27), package_name: "faktory" } -2159.957695554s DEBUG mutant{id=206}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2161.012377420s DEBUG mutant{id=206}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054719318s -2161.012539121s DEBUG mutant{id=206}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2175.929201357s DEBUG mutant{id=206}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.916720517s -2175.929362816s TRACE mutant{id=206}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::fmt", return_type: "-> std::fmt::Result", span: Span(101, 5, 112, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(102, 9, 111, 27), package_name: "faktory" } -2175.932292080s DEBUG mutant{id=206}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2175.932739199s TRACE mutant{id=207}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "()", genre: FnValue, span: Span(15, 5, 118, 34), package_name: "faktory" } -2175.932963722s DEBUG mutant{id=207}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2176.034668769s DEBUG mutant{id=207}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.73133ms -2176.034909653s DEBUG mutant{id=207}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2190.649047629s DEBUG mutant{id=207}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.614178462s -2190.649126106s TRACE mutant{id=207}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "()", genre: FnValue, span: Span(15, 5, 118, 34), package_name: "faktory" } -2190.652152796s DEBUG mutant{id=207}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2190.652641264s TRACE mutant{id=208}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "%", genre: BinaryOperator, span: Span(110, 38, 110, 39), package_name: "faktory" } -2190.657354411s DEBUG mutant{id=208}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2190.759040448s DEBUG mutant{id=208}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.709329ms -2190.759224303s DEBUG mutant{id=208}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2205.070859087s DEBUG mutant{id=208}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.311669311s -2205.070917133s TRACE mutant{id=208}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "%", genre: BinaryOperator, span: Span(110, 38, 110, 39), package_name: "faktory" } -2205.073626171s DEBUG mutant{id=208}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2205.074240968s TRACE mutant{id=209}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(190, 63, 190, 64), package_name: "faktory" } -2205.074538475s DEBUG mutant{id=209}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2206.229425127s DEBUG mutant{id=209}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.154910442s -2206.229694140s DEBUG mutant{id=209}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2210.948132201s DEBUG mutant{id=209}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.718512389s -2210.948205221s TRACE mutant{id=209}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "/", genre: BinaryOperator, span: Span(190, 63, 190, 64), package_name: "faktory" } -2210.951436162s DEBUG mutant{id=209}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2210.952083288s TRACE mutant{id=210}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_json", return_type: "-> Result, Error>", span: Span(405, 5, 410, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(409, 9, 409, 52), package_name: "faktory" } -2210.952362178s DEBUG mutant{id=210}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2211.154593102s DEBUG mutant{id=210}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=202.260792ms -2211.154616631s TRACE mutant{id=210}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_json", return_type: "-> Result, Error>", span: Span(405, 5, 410, 6) }), replacement: "Ok(Some(Default::default()))", genre: FnValue, span: Span(409, 9, 409, 52), package_name: "faktory" } -2211.155541053s DEBUG mutant{id=210}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2211.155668758s TRACE mutant{id=211}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::with_connector", return_type: "-> Result", span: Span(59, 5, 70, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(63, 9, 69, 68), package_name: "faktory" } -2211.155734025s DEBUG mutant{id=211}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2212.209679529s DEBUG mutant{id=211}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.053959025s -2212.209897139s DEBUG mutant{id=211}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2212.462773192s DEBUG mutant{id=211}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.921124ms -2212.462837923s TRACE mutant{id=211}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::with_connector", return_type: "-> Result", span: Span(59, 5, 70, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(63, 9, 69, 68), package_name: "faktory" } -2212.466324489s DEBUG mutant{id=211}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2212.466548111s TRACE mutant{id=212}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "||", genre: BinaryOperator, span: Span(29, 17, 29, 19), package_name: "faktory" } -2212.466688374s DEBUG mutant{id=212}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2213.471027913s DEBUG mutant{id=212}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004357534s -2213.471178931s DEBUG mutant{id=212}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2304.485771272s DEBUG mutant{id=212}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.014626966s -2304.485823393s DEBUG mutant{id=212}:run{phase=Test}:terminate_child{pid=699606}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -2304.485885525s TRACE mutant{id=212}:run{phase=Test}:terminate_child{pid=699606}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -2304.489238252s DEBUG mutant{id=212}:run{phase=Test}:terminate_child{pid=699606}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -2304.489290367s DEBUG mutant{id=212}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.018167248s -2304.489345242s TRACE mutant{id=212}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "||", genre: BinaryOperator, span: Span(29, 17, 29, 19), package_name: "faktory" } -2304.490712762s DEBUG mutant{id=212}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -2304.490947453s TRACE mutant{id=213}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } -2304.491069287s DEBUG mutant{id=213}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2305.495207570s DEBUG mutant{id=213}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004153415s -2305.495332949s DEBUG mutant{id=213}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2305.898195109s DEBUG mutant{id=213}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.885454ms -2305.898316828s TRACE mutant{id=213}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_shutdown", return_type: "-> std::task::Poll>", span: Span(166, 5, 171, 6) }), replacement: "Poll::from_iter([Ok(())])", genre: FnValue, span: Span(170, 9, 170, 48), package_name: "faktory" } -2305.900695814s DEBUG mutant{id=213}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2305.901241021s TRACE mutant{id=214}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::new()))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -2305.901492907s DEBUG mutant{id=214}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2306.153778032s DEBUG mutant{id=214}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.308981ms -2306.153853088s TRACE mutant{id=214}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::new()))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -2306.157384760s DEBUG mutant{id=214}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2306.157849289s TRACE mutant{id=215}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -2306.158087850s DEBUG mutant{id=215}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2306.962092557s DEBUG mutant{id=215}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=804.040175ms -2306.962138274s DEBUG mutant{id=215}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2307.364735444s DEBUG mutant{id=215}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=402.607938ms -2307.364806595s TRACE mutant{id=215}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_flush", return_type: "-> std::task::Poll>", span: Span(159, 5, 164, 6) }), replacement: "Poll::new(Ok(()))", genre: FnValue, span: Span(163, 9, 163, 45), package_name: "faktory" } -2307.367631915s DEBUG mutant{id=215}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2307.367995148s TRACE mutant{id=216}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from_iter([Ok(0)])", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2307.372988972s DEBUG mutant{id=216}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2307.475031452s DEBUG mutant{id=216}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=102.074837ms -2307.475147294s DEBUG mutant{id=216}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2307.878583254s DEBUG mutant{id=216}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=403.472128ms -2307.878671014s TRACE mutant{id=216}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from_iter([Ok(0)])", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2307.879815747s DEBUG mutant{id=216}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2307.880057958s TRACE mutant{id=217}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new())", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2307.880154356s DEBUG mutant{id=217}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2308.081649000s DEBUG mutant{id=217}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.503256ms -2308.081687273s TRACE mutant{id=217}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::new())", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2308.083726721s DEBUG mutant{id=217}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2308.083903394s TRACE mutant{id=218}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::get_progress", return_type: "-> Result, Error>", span: Span(15, 5, 19, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(17, 9, 18, 50), package_name: "faktory" } -2308.084034350s DEBUG mutant{id=218}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2308.887532466s DEBUG mutant{id=218}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.515708ms -2308.887660944s DEBUG mutant{id=218}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2323.841779796s DEBUG mutant{id=218}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.954155969s -2323.841851679s TRACE mutant{id=218}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::get_progress", return_type: "-> Result, Error>", span: Span(15, 5, 19, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(17, 9, 18, 50), package_name: "faktory" } -2323.844555517s DEBUG mutant{id=218}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2323.844907748s TRACE mutant{id=219}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::hostname", return_type: "-> &mut Self", span: Span(33, 5, 39, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(37, 9, 38, 13), package_name: "faktory" } -2323.845113333s DEBUG mutant{id=219}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2324.849623857s DEBUG mutant{id=219}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004537336s -2324.849746322s DEBUG mutant{id=219}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2339.656353084s DEBUG mutant{id=219}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.806629934s -2339.656432991s TRACE mutant{id=219}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerBuilder::hostname", return_type: "-> &mut Self", span: Span(33, 5, 39, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(37, 9, 38, 13), package_name: "faktory" } -2339.659487832s DEBUG mutant{id=219}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2339.659950766s TRACE mutant{id=220}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Fail::generic_with_backtrace", return_type: "-> Self", span: Span(119, 5, 132, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(123, 9, 131, 10), package_name: "faktory" } -2339.660148416s DEBUG mutant{id=220}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2339.912307710s DEBUG mutant{id=220}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.185434ms -2339.912414806s TRACE mutant{id=220}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Fail::generic_with_backtrace", return_type: "-> Self", span: Span(119, 5, 132, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(123, 9, 131, 10), package_name: "faktory" } -2339.914315468s DEBUG mutant{id=220}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2339.914763726s TRACE mutant{id=221}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::from_iter([Ok(())]))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2339.914945896s DEBUG mutant{id=221}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2340.166947702s DEBUG mutant{id=221}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.021449ms -2340.166989876s TRACE mutant{id=221}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::from_iter([Ok(())]))", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2340.168716841s DEBUG mutant{id=221}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2340.169014772s TRACE mutant{id=222}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::deref", return_type: "-> &Self::Target", span: Span(236, 5, 238, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(237, 9, 237, 16), package_name: "faktory" } -2340.169144959s DEBUG mutant{id=222}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2340.370898643s DEBUG mutant{id=222}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.771087ms -2340.370940698s TRACE mutant{id=222}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::deref", return_type: "-> &Self::Target", span: Span(236, 5, 238, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(237, 9, 237, 16), package_name: "faktory" } -2340.372774298s DEBUG mutant{id=222}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2340.372917793s TRACE mutant{id=223}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::from_iter([Default::default()])))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -2340.373010282s DEBUG mutant{id=223}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2341.277300109s DEBUG mutant{id=223}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.30767ms -2341.277349082s DEBUG mutant{id=223}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2341.528851069s DEBUG mutant{id=223}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.515232ms -2341.528940367s TRACE mutant{id=223}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::from_iter([Default::default()])))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -2341.529957763s DEBUG mutant{id=223}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2341.530197556s TRACE mutant{id=224}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2341.530289622s DEBUG mutant{id=224}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2341.731477126s DEBUG mutant{id=224}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.196995ms -2341.731650085s TRACE mutant{id=224}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2341.735449524s DEBUG mutant{id=224}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2341.735743267s TRACE mutant{id=225}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(31, 63, 31, 65), package_name: "faktory" } -2341.735949547s DEBUG mutant{id=225}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2342.790220675s DEBUG mutant{id=225}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054300364s -2342.790374487s DEBUG mutant{id=225}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2433.819228061s DEBUG mutant{id=225}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:104: timeout, terminating child process... elapsed=91.028890315s -2433.819330408s DEBUG mutant{id=225}:run{phase=Test}:terminate_child{pid=710798}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:130: terminating child process -2433.819460054s TRACE mutant{id=225}:run{phase=Test}:terminate_child{pid=710798}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:132: wait for child after termination -2433.827037438s DEBUG mutant{id=225}:run{phase=Test}:terminate_child{pid=710798}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:138: terminated child exit status Signaled(15) -2433.827124631s DEBUG mutant{id=225}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Timeout elapsed=91.03681013s -2433.827214061s TRACE mutant{id=225}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::listen_for_heartbeats", return_type: "-> Result", span: Span(16, 5, 77, 6) }), replacement: "!=", genre: BinaryOperator, span: Span(31, 63, 31, 65), package_name: "faktory" } -2433.829883190s DEBUG mutant{id=225}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Timeout -2433.830140522s TRACE mutant{id=226}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } -2433.830326530s DEBUG mutant{id=226}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2434.884970184s DEBUG mutant{id=226}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054666368s -2434.885111809s DEBUG mutant{id=226}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2449.483170807s DEBUG mutant{id=226}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.598109058s -2449.483314406s TRACE mutant{id=226}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(None)", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } -2449.486393648s DEBUG mutant{id=226}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2449.487048112s TRACE mutant{id=227}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "Ok(None)", genre: FnValue, span: Span(37, 5, 62, 33), package_name: "faktory" } -2449.487335448s DEBUG mutant{id=227}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2450.741509699s DEBUG mutant{id=227}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.254198424s -2450.741599213s DEBUG mutant{id=227}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2455.810733282s DEBUG mutant{id=227}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=5.06916532s -2455.810795422s TRACE mutant{id=227}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read_json", return_type: "-> Result, Error>", span: Span(34, 1, 63, 2) }), replacement: "Ok(None)", genre: FnValue, span: Span(37, 5, 62, 33), package_name: "faktory" } -2455.811845843s DEBUG mutant{id=227}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2455.812059884s TRACE mutant{id=228}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue", return_type: "-> Result<(), Error>", span: Span(322, 5, 327, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(326, 9, 326, 60), package_name: "faktory" } -2455.812142683s DEBUG mutant{id=228}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2456.966908206s DEBUG mutant{id=228}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.154776422s -2456.966954482s DEBUG mutant{id=228}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2472.132123162s DEBUG mutant{id=228}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.165181246s -2472.132193514s TRACE mutant{id=228}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue", return_type: "-> Result<(), Error>", span: Span(322, 5, 327, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(326, 9, 326, 60), package_name: "faktory" } -2472.135301915s DEBUG mutant{id=228}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2472.135657711s TRACE mutant{id=229}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "-", genre: BinaryOperator, span: Span(109, 52, 109, 53), package_name: "faktory" } -2472.135840892s DEBUG mutant{id=229}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2473.040222318s DEBUG mutant{id=229}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.403055ms -2473.040357506s DEBUG mutant{id=229}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2487.747044757s DEBUG mutant{id=229}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.706736357s -2487.747158605s TRACE mutant{id=229}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "-", genre: BinaryOperator, span: Span(109, 52, 109, 53), package_name: "faktory" } -2487.749891994s DEBUG mutant{id=229}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2487.750189249s TRACE mutant{id=230}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::from(Default::default()))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } -2487.750382226s DEBUG mutant{id=230}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2487.851719949s DEBUG mutant{id=230}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.360764ms -2487.851880229s DEBUG mutant{id=230}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2488.103883779s DEBUG mutant{id=230}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.035465ms -2488.103918562s TRACE mutant{id=230}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::from(Default::default()))", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } -2488.104806412s DEBUG mutant{id=230}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2488.104982247s TRACE mutant{id=231}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::issue", return_type: "-> Result<(), Error>", span: Span(297, 5, 305, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(298, 9, 304, 40), package_name: "faktory" } -2488.105049544s DEBUG mutant{id=231}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2488.958128897s DEBUG mutant{id=231}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=853.087258ms -2488.958290211s DEBUG mutant{id=231}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2503.763936663s DEBUG mutant{id=231}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.805678825s -2503.764010031s TRACE mutant{id=231}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::issue", return_type: "-> Result<(), Error>", span: Span(297, 5, 305, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(298, 9, 304, 40), package_name: "faktory" } -2503.767138325s DEBUG mutant{id=231}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2503.767754205s TRACE mutant{id=232}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -2503.768006826s DEBUG mutant{id=232}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2504.020375863s DEBUG mutant{id=232}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.39491ms -2504.020454277s TRACE mutant{id=232}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -2504.022000700s DEBUG mutant{id=232}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2504.022131859s TRACE mutant{id=233}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(83, 5, 85, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(84, 9, 84, 23), package_name: "faktory" } -2504.022233065s DEBUG mutant{id=233}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2504.925867657s DEBUG mutant{id=233}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.647867ms -2504.926097811s DEBUG mutant{id=233}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2519.434239441s DEBUG mutant{id=233}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.508189647s -2519.434306567s TRACE mutant{id=233}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(83, 5, 85, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(84, 9, 84, 23), package_name: "faktory" } -2519.437472259s DEBUG mutant{id=233}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2519.438006086s TRACE mutant{id=234}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::new(Default::default())))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -2519.438281793s DEBUG mutant{id=234}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2520.342027618s DEBUG mutant{id=234}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.770154ms -2520.342171118s DEBUG mutant{id=234}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2520.543785223s DEBUG mutant{id=234}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.643428ms -2520.543851758s TRACE mutant{id=234}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::new(Default::default())))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -2520.545249060s DEBUG mutant{id=234}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2520.545551809s TRACE mutant{id=235}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::drop", return_type: "", span: Span(173, 5, 181, 6) }), replacement: "()", genre: FnValue, span: Span(174, 9, 180, 12), package_name: "faktory" } -2520.545688281s DEBUG mutant{id=235}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2521.649719885s DEBUG mutant{id=235}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104046314s -2521.649924785s DEBUG mutant{id=235}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2536.561081230s DEBUG mutant{id=235}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=14.91119714s -2536.561119225s TRACE mutant{id=235}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::drop", return_type: "", span: Span(173, 5, 181, 6) }), replacement: "()", genre: FnValue, span: Span(174, 9, 180, 12), package_name: "faktory" } -2536.562469716s DEBUG mutant{id=235}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2536.562661757s TRACE mutant{id=236}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new(Ok(1))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2536.562746911s DEBUG mutant{id=236}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2537.716716674s DEBUG mutant{id=236}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.153981564s -2537.716873737s DEBUG mutant{id=236}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2538.169746567s DEBUG mutant{id=236}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=452.908034ms -2538.169794107s TRACE mutant{id=236}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::new(Ok(1))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2538.171988960s DEBUG mutant{id=236}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2538.172555071s TRACE mutant{id=237}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "/", genre: BinaryOperator, span: Span(359, 24, 359, 25), package_name: "faktory" } -2538.172805170s DEBUG mutant{id=237}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2539.026962045s DEBUG mutant{id=237}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=854.18049ms -2539.027066335s DEBUG mutant{id=237}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2554.138429396s DEBUG mutant{id=237}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.111382044s -2554.138490900s TRACE mutant{id=237}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "/", genre: BinaryOperator, span: Span(359, 24, 359, 25), package_name: "faktory" } -2554.141849370s DEBUG mutant{id=237}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2554.142740533s TRACE mutant{id=238}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::new()]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2554.143099848s DEBUG mutant{id=238}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2554.445585783s DEBUG mutant{id=238}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.519828ms -2554.445795549s TRACE mutant{id=238}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from_iter([BufStream::new()]))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2554.448593153s DEBUG mutant{id=238}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2554.448824453s TRACE mutant{id=239}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::new()))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -2554.448969458s DEBUG mutant{id=239}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2555.252549765s DEBUG mutant{id=239}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.603962ms -2555.252788319s DEBUG mutant{id=239}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2555.504404669s DEBUG mutant{id=239}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.663861ms -2555.504474598s TRACE mutant{id=239}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::new()))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -2555.507378220s DEBUG mutant{id=239}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2555.508051473s TRACE mutant{id=240}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::from(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2555.508297119s DEBUG mutant{id=240}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2555.760720054s DEBUG mutant{id=240}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.448277ms -2555.760832205s TRACE mutant{id=240}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect_with", return_type: "-> Result>, Error>", span: Span(191, 5, 202, 6) }), replacement: "Ok(Client::from(BufStream::from(Default::default())))", genre: FnValue, span: Span(196, 9, 201, 42), package_name: "faktory" } -2555.762891958s DEBUG mutant{id=240}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2555.763078284s TRACE mutant{id=241}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_failure", return_type: "", span: Span(58, 5, 63, 6) }), replacement: "()", genre: FnValue, span: Span(59, 9, 62, 47), package_name: "faktory" } -2555.763201916s DEBUG mutant{id=241}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2556.666465206s DEBUG mutant{id=241}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.28501ms -2556.666548128s DEBUG mutant{id=241}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2571.230133734s DEBUG mutant{id=241}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.563598972s -2571.230315866s TRACE mutant{id=241}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerStatesRegistry::register_failure", return_type: "", span: Span(58, 5, 63, 6) }), replacement: "()", genre: FnValue, span: Span(59, 9, 62, 47), package_name: "faktory" } -2571.234348695s DEBUG mutant{id=241}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2571.234626897s TRACE mutant{id=242}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::new()))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -2571.234814828s DEBUG mutant{id=242}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2572.139148303s DEBUG mutant{id=242}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=904.354655ms -2572.139390717s DEBUG mutant{id=242}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2572.341045532s DEBUG mutant{id=242}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.700129ms -2572.341213818s TRACE mutant{id=242}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(Some(DateTime::new()))", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -2572.343102967s DEBUG mutant{id=242}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2572.343262181s TRACE mutant{id=243}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::save_last_result", return_type: "", span: Span(22, 5, 24, 6) }), replacement: "()", genre: FnValue, span: Span(23, 9, 23, 41), package_name: "faktory" } -2572.343360218s DEBUG mutant{id=243}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2573.197432334s DEBUG mutant{id=243}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=854.084948ms -2573.197688890s DEBUG mutant{id=243}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2587.761129381s DEBUG mutant{id=243}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.563493537s -2587.761190471s TRACE mutant{id=243}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::save_last_result", return_type: "", span: Span(22, 5, 24, 6) }), replacement: "()", genre: FnValue, span: Span(23, 9, 23, 41), package_name: "faktory" } -2587.764030854s DEBUG mutant{id=243}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2587.764336615s TRACE mutant{id=244}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::set_progress", return_type: "-> Result<(), Error>", span: Span(9, 5, 13, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(11, 9, 12, 48), package_name: "faktory" } -2587.764562317s DEBUG mutant{id=244}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2588.868968685s DEBUG mutant{id=244}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104434677s -2588.869168588s DEBUG mutant{id=244}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2604.020542170s DEBUG mutant{id=244}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.151426139s -2604.020706224s TRACE mutant{id=244}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::set_progress", return_type: "-> Result<(), Error>", span: Span(9, 5, 13, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(11, 9, 12, 48), package_name: "faktory" } -2604.025825173s DEBUG mutant{id=244}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2604.026361048s TRACE mutant{id=245}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::reconnect", return_type: "-> io::Result", span: Span(115, 5, 124, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(116, 9, 123, 72), package_name: "faktory" } -2604.026708446s DEBUG mutant{id=245}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2604.179206043s DEBUG mutant{id=245}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=152.532337ms -2604.179315161s DEBUG mutant{id=245}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2604.532035139s DEBUG mutant{id=245}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=352.759602ms -2604.532167228s TRACE mutant{id=245}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::reconnect", return_type: "-> io::Result", span: Span(115, 5, 124, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(116, 9, 123, 72), package_name: "faktory" } -2604.536215834s DEBUG mutant{id=245}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2604.536519283s TRACE mutant{id=246}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_cuurently_running", return_type: "-> Option", span: Span(18, 5, 20, 6) }), replacement: "Some(Default::default())", genre: FnValue, span: Span(19, 9, 19, 32), package_name: "faktory" } -2604.536750439s DEBUG mutant{id=246}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2605.541830453s DEBUG mutant{id=246}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.005118572s -2605.541887043s DEBUG mutant{id=246}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2620.596249825s DEBUG mutant{id=246}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.054370387s -2620.596399628s TRACE mutant{id=246}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "WorkerState::take_cuurently_running", return_type: "-> Option", span: Span(18, 5, 20, 6) }), replacement: "Some(Default::default())", genre: FnValue, span: Span(19, 9, 19, 32), package_name: "faktory" } -2620.599215028s DEBUG mutant{id=246}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2620.599560366s TRACE mutant{id=247}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from(Ok(0))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2620.599719836s DEBUG mutant{id=247}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2621.603575529s DEBUG mutant{id=247}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.003876855s -2621.603774476s DEBUG mutant{id=247}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2622.056776165s DEBUG mutant{id=247}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=453.047338ms -2622.056804777s TRACE mutant{id=247}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::poll_write", return_type: "-> std::task::Poll>", span: Span(151, 5, 157, 6) }), replacement: "Poll::from(Ok(0))", genre: FnValue, span: Span(156, 9, 156, 50), package_name: "faktory" } -2622.058093335s DEBUG mutant{id=247}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2622.058220672s TRACE mutant{id=248}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(15, 5, 27, 12), package_name: "faktory" } -2622.058293865s DEBUG mutant{id=248}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2622.259672919s DEBUG mutant{id=248}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.390542ms -2622.259736218s TRACE mutant{id=248}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "url_parse", return_type: "-> Result", span: Span(14, 1, 28, 2) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(15, 5, 27, 12), package_name: "faktory" } -2622.261785489s DEBUG mutant{id=248}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2622.261981371s TRACE mutant{id=249}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::default", return_type: "-> io::Result", span: Span(77, 5, 88, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(83, 9, 87, 53), package_name: "faktory" } -2622.262078749s DEBUG mutant{id=249}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2623.165196328s DEBUG mutant{id=249}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=903.131045ms -2623.165310064s DEBUG mutant{id=249}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2623.417974815s DEBUG mutant{id=249}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.702498ms -2623.418063762s TRACE mutant{id=249}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "TlsStream::default", return_type: "-> io::Result", span: Span(77, 5, 88, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(83, 9, 87, 53), package_name: "faktory" } -2623.418914689s DEBUG mutant{id=249}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2623.419004823s TRACE mutant{id=250}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_bid", return_type: "-> Result", span: Span(48, 5, 50, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(49, 9, 49, 51), package_name: "faktory" } -2623.419055449s DEBUG mutant{id=250}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2623.469732966s DEBUG mutant{id=250}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=50.686014ms -2623.469797815s DEBUG mutant{id=250}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2638.776752324s DEBUG mutant{id=250}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.306974477s -2638.776884034s TRACE mutant{id=250}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ReadToken<'a, S>::read_bid", return_type: "-> Result", span: Span(48, 5, 50, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(49, 9, 49, 51), package_name: "faktory" } -2638.779638021s DEBUG mutant{id=250}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2638.779894944s TRACE mutant{id=251}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::from(Default::default()))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -2638.780102619s DEBUG mutant{id=251}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2638.881634369s DEBUG mutant{id=251}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.579692ms -2638.881835850s DEBUG mutant{id=251}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2639.134008997s DEBUG mutant{id=251}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.21122ms -2639.134029026s TRACE mutant{id=251}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::from(Default::default()))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -2639.134945973s DEBUG mutant{id=251}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2639.135032043s TRACE mutant{id=252}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::from(Default::default())))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } -2639.135076599s DEBUG mutant{id=252}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2639.185685058s DEBUG mutant{id=252}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=50.617114ms -2639.185754410s DEBUG mutant{id=252}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2639.437429938s DEBUG mutant{id=252}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.681188ms -2639.437546697s TRACE mutant{id=252}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchStatus::open", return_type: "-> Result>, Error>", span: Span(83, 5, 91, 6) }), replacement: "Ok(Some(BatchHandle::from(Default::default())))", genre: FnValue, span: Span(90, 9, 90, 48), package_name: "faktory" } -2639.438599417s DEBUG mutant{id=252}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2639.438788766s TRACE mutant{id=253}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(190, 63, 190, 64), package_name: "faktory" } -2639.438851928s DEBUG mutant{id=253}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2640.542121622s DEBUG mutant{id=253}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.103277885s -2640.542239818s DEBUG mutant{id=253}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2645.161192035s DEBUG mutant{id=253}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.6189908s -2645.161248768s TRACE mutant{id=253}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "read", return_type: "-> Result", span: Span(134, 1, 233, 2) }), replacement: "+", genre: BinaryOperator, span: Span(190, 63, 190, 64), package_name: "faktory" } -2645.162537062s DEBUG mutant{id=253}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2645.162643343s TRACE mutant{id=254}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::from_iter([Default::default()])))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -2645.162711126s DEBUG mutant{id=254}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2646.217708532s DEBUG mutant{id=254}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.055006416s -2646.217837779s DEBUG mutant{id=254}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2646.520170318s DEBUG mutant{id=254}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.354174ms -2646.520312977s TRACE mutant{id=254}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::open_batch", return_type: "-> Result>, Error>", span: Span(33, 5, 40, 6) }), replacement: "Ok(Some(BatchHandle::from_iter([Default::default()])))", genre: FnValue, span: Span(38, 9, 39, 55), package_name: "faktory" } -2646.523305905s DEBUG mutant{id=254}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2646.523822366s TRACE mutant{id=255}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Job::builder", return_type: "-> JobBuilder", span: Span(227, 5, 232, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(231, 9, 231, 30), package_name: "faktory" } -2646.524032648s DEBUG mutant{id=255}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2646.725846173s DEBUG mutant{id=255}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.840622ms -2646.725895661s TRACE mutant{id=255}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Job::builder", return_type: "-> JobBuilder", span: Span(227, 5, 232, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(231, 9, 231, 30), package_name: "faktory" } -2646.726927558s DEBUG mutant{id=255}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2646.727006964s TRACE mutant{id=256}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::new(Default::default()))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -2646.727059281s DEBUG mutant{id=256}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2647.530473066s DEBUG mutant{id=256}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=803.42177ms -2647.530661044s DEBUG mutant{id=256}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2647.832910386s DEBUG mutant{id=256}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.288252ms -2647.833075766s TRACE mutant{id=256}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchHandle<'a, S>::start_batch", return_type: "-> Result, Error>", span: Span(31, 5, 35, 6) }), replacement: "Ok(BatchHandle::new(Default::default()))", genre: FnValue, span: Span(33, 9, 34, 40), package_name: "faktory" } -2647.836758774s DEBUG mutant{id=256}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2647.837456950s TRACE mutant{id=257}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(String::new(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -2647.837735450s DEBUG mutant{id=257}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2648.892584882s DEBUG mutant{id=257}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054878783s -2648.892651680s DEBUG mutant{id=257}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2663.857850430s DEBUG mutant{id=257}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.965216352s -2663.857911450s TRACE mutant{id=257}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::enqueue_many", return_type: "-> Result<(usize, Option>), Error>", span: Span(329, 5, 360, 6) }), replacement: "Ok((0, Some(HashMap::from_iter([(String::new(), String::new())]))))", genre: FnValue, span: Span(348, 9, 359, 54), package_name: "faktory" } -2663.860733108s DEBUG mutant{id=257}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2663.860979955s TRACE mutant{id=258}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: ">::run", return_type: "-> Result<(), E>", span: Span(62, 5, 64, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(63, 9, 63, 24), package_name: "faktory" } -2663.861150755s DEBUG mutant{id=258}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2664.915921021s DEBUG mutant{id=258}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.054792471s -2664.916070731s DEBUG mutant{id=258}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2680.135215520s DEBUG mutant{id=258}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.219201618s -2680.135392824s TRACE mutant{id=258}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: ">::run", return_type: "-> Result<(), E>", span: Span(62, 5, 64, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(63, 9, 63, 24), package_name: "faktory" } -2680.139547305s DEBUG mutant{id=258}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2680.140182946s TRACE mutant{id=259}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Hello::set_password", return_type: "", span: Span(214, 5, 224, 6) }), replacement: "()", genre: FnValue, span: Span(215, 9, 223, 58), package_name: "faktory" } -2680.140512246s DEBUG mutant{id=259}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2682.097816553s DEBUG mutant{id=259}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.957337724s -2682.097943842s DEBUG mutant{id=259}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2698.062582609s DEBUG mutant{id=259}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.964685758s -2698.062627551s TRACE mutant{id=259}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Hello::set_password", return_type: "", span: Span(214, 5, 224, 6) }), replacement: "()", genre: FnValue, span: Span(215, 9, 223, 58), package_name: "faktory" } -2698.064663270s DEBUG mutant{id=259}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2698.064986889s TRACE mutant{id=260}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_success_callback", return_type: "-> Batch", span: Span(183, 5, 188, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(185, 9, 187, 10), package_name: "faktory" } -2698.065126817s DEBUG mutant{id=260}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2699.821719147s DEBUG mutant{id=260}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.756608948s -2699.821820050s DEBUG mutant{id=260}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2700.223587177s DEBUG mutant{id=260}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=401.78419ms -2700.223651770s TRACE mutant{id=260}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "BatchBuilder::with_success_callback", return_type: "-> Batch", span: Span(183, 5, 188, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(185, 9, 187, 10), package_name: "faktory" } -2700.224400687s DEBUG mutant{id=260}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2700.224508776s TRACE mutant{id=261}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(262, 5, 264, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(263, 9, 263, 23), package_name: "faktory" } -2700.224557497s DEBUG mutant{id=261}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2700.375481678s DEBUG mutant{id=261}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=150.92912ms -2700.375529335s TRACE mutant{id=261}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::from", return_type: "-> Self", span: Span(262, 5, 264, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(263, 9, 263, 23), package_name: "faktory" } -2700.378042966s DEBUG mutant{id=261}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2700.378496557s TRACE mutant{id=262}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::queue_pause", return_type: "-> Result<(), Error>", span: Span(373, 5, 382, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(378, 9, 381, 19), package_name: "faktory" } -2700.378686095s DEBUG mutant{id=262}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2701.532670897s DEBUG mutant{id=262}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.154005703s -2701.532739466s DEBUG mutant{id=262}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2717.102842321s DEBUG mutant{id=262}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.570110945s -2717.103016994s TRACE mutant{id=262}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::queue_pause", return_type: "-> Result<(), Error>", span: Span(373, 5, 382, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(378, 9, 381, 19), package_name: "faktory" } -2717.106929243s DEBUG mutant{id=262}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2717.107578995s TRACE mutant{id=263}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "Ok(1)", genre: FnValue, span: Span(328, 9, 373, 10), package_name: "faktory" } -2717.107865674s DEBUG mutant{id=263}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2718.112193105s DEBUG mutant{id=263}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.004353521s -2718.112431216s DEBUG mutant{id=263}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2722.878456531s DEBUG mutant{id=263}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.766097382s -2722.878488299s TRACE mutant{id=263}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::run", return_type: "-> Result", span: Span(316, 5, 374, 6) }), replacement: "Ok(1)", genre: FnValue, span: Span(328, 9, 373, 10), package_name: "faktory" } -2722.879906530s DEBUG mutant{id=263}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2722.880192862s TRACE mutant{id=264}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::new())", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2722.886704517s DEBUG mutant{id=264}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2723.138534672s DEBUG mutant{id=264}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.850216ms -2723.138643045s TRACE mutant{id=264}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Worker::spawn_worker", return_type: "-> Result>, Error>", span: Span(293, 5, 314, 6) }), replacement: "Ok(JoinHandle::new())", genre: FnValue, span: Span(302, 9, 313, 12), package_name: "faktory" } -2723.141561408s DEBUG mutant{id=264}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2723.142195206s TRACE mutant{id=265}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::from(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -2723.142485865s DEBUG mutant{id=265}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2723.394604593s DEBUG mutant{id=265}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=252.148266ms -2723.394658157s TRACE mutant{id=265}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client>::connect", return_type: "-> Result>, Error>", span: Span(206, 5, 221, 6) }), replacement: "Ok(Client::from(BufStream::from(Default::default())))", genre: FnValue, span: Span(218, 9, 220, 80), package_name: "faktory" } -2723.397613379s DEBUG mutant{id=265}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2723.397907780s TRACE mutant{id=266}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "<", genre: BinaryOperator, span: Span(87, 70, 87, 72), package_name: "faktory" } -2723.398142069s DEBUG mutant{id=266}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2724.752339954s DEBUG mutant{id=266}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.35421861s -2724.752396006s DEBUG mutant{id=266}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2739.502600987s DEBUG mutant{id=266}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.750213341s -2739.502836134s TRACE mutant{id=266}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "main", return_type: "", span: Span(13, 1, 119, 2) }), replacement: "<", genre: BinaryOperator, span: Span(87, 70, 87, 72), package_name: "faktory" } -2739.506505435s DEBUG mutant{id=266}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2739.506840944s TRACE mutant{id=267}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::deref", return_type: "-> &Self::Target", span: Span(31, 5, 33, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(32, 9, 32, 16), package_name: "faktory" } -2739.507059481s DEBUG mutant{id=267}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2739.809735245s DEBUG mutant{id=267}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=302.710568ms -2739.809830543s TRACE mutant{id=267}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::deref", return_type: "-> &Self::Target", span: Span(31, 5, 33, 6) }), replacement: "&Default::default()", genre: FnValue, span: Span(32, 9, 32, 16), package_name: "faktory" } -2739.812317253s DEBUG mutant{id=267}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2739.812565517s TRACE mutant{id=268}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "::fmt", return_type: "-> std::fmt::Result", span: Span(30, 5, 38, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(31, 9, 37, 27), package_name: "faktory" } -2739.812717228s DEBUG mutant{id=268}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2740.666532821s DEBUG mutant{id=268}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=853.838328ms -2740.666616869s DEBUG mutant{id=268}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2755.764779588s DEBUG mutant{id=268}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.09818797s -2755.764910244s TRACE mutant{id=268}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "::fmt", return_type: "-> std::fmt::Result", span: Span(30, 5, 38, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(31, 9, 37, 27), package_name: "faktory" } -2755.767449604s DEBUG mutant{id=268}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2755.767666445s TRACE mutant{id=269}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "get_env_url", return_type: "-> String", span: Span(4, 1, 8, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(5, 5, 7, 73), package_name: "faktory" } -2755.767806869s DEBUG mutant{id=269}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2756.771762267s DEBUG mutant{id=269}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.003976418s -2756.771873606s DEBUG mutant{id=269}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2761.538895964s DEBUG mutant{id=269}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=4.767038967s -2761.538985611s TRACE mutant{id=269}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "get_env_url", return_type: "-> String", span: Span(4, 1, 8, 2) }), replacement: "\"xyzzy\".into()", genre: FnValue, span: Span(5, 5, 7, 73), package_name: "faktory" } -2761.540577843s DEBUG mutant{id=269}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2761.540708578s TRACE mutant{id=270}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdate::builder", return_type: "-> ProgressUpdateBuilder", span: Span(47, 5, 53, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(52, 9, 52, 40), package_name: "faktory" } -2761.540784884s DEBUG mutant{id=270}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2762.393955971s DEBUG mutant{id=270}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=853.179324ms -2762.394146010s DEBUG mutant{id=270}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2762.596317802s DEBUG mutant{id=270}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=202.212855ms -2762.596375329s TRACE mutant{id=270}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "ProgressUpdate::builder", return_type: "-> ProgressUpdateBuilder", span: Span(47, 5, 53, 6) }), replacement: "Default::default()", genre: FnValue, span: Span(52, 9, 52, 40), package_name: "faktory" } -2762.597838177s DEBUG mutant{id=270}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2762.598006058s TRACE mutant{id=271}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::heartbeat", return_type: "-> Result", span: Span(292, 5, 315, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(293, 9, 314, 10), package_name: "faktory" } -2762.598074011s DEBUG mutant{id=271}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2762.799360584s DEBUG mutant{id=271}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=201.290719ms -2762.799471083s TRACE mutant{id=271}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::heartbeat", return_type: "-> Result", span: Span(292, 5, 315, 6) }), replacement: "Ok(Default::default())", genre: FnValue, span: Span(293, 9, 314, 10), package_name: "faktory" } -2762.802013614s DEBUG mutant{id=271}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=Unviable -2762.802314429s TRACE mutant{id=272}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_for", return_type: "-> &mut Self", span: Span(49, 5, 61, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(60, 9, 60, 52), package_name: "faktory" } -2762.802467047s DEBUG mutant{id=272}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2763.657104877s DEBUG mutant{id=272}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=854.659116ms -2763.657218936s DEBUG mutant{id=272}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2763.859873720s DEBUG mutant{id=272}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=202.691251ms -2763.859937745s TRACE mutant{id=272}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "JobBuilder::unique_for", return_type: "-> &mut Self", span: Span(49, 5, 61, 6) }), replacement: "Box::leak(Box::new(Default::default()))", genre: FnValue, span: Span(60, 9, 60, 52), package_name: "faktory" } -2763.863238598s DEBUG mutant{id=272}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2763.863648984s TRACE mutant{id=273}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "write_command", return_type: "-> Result<(), Error>", span: Span(263, 1, 269, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(267, 5, 268, 25), package_name: "faktory" } -2763.863832741s DEBUG mutant{id=273}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2764.968428079s DEBUG mutant{id=273}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.104611425s -2764.968564675s DEBUG mutant{id=273}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2779.982442266s DEBUG mutant{id=273}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=15.013923706s -2779.982610129s TRACE mutant{id=273}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "write_command", return_type: "-> Result<(), Error>", span: Span(263, 1, 269, 2) }), replacement: "Ok(())", genre: FnValue, span: Span(267, 5, 268, 25), package_name: "faktory" } -2779.985940075s DEBUG mutant{id=273}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2779.986588237s TRACE mutant{id=274}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::reconnect", return_type: "-> Result<(), Error>", span: Span(163, 5, 166, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(164, 9, 165, 26), package_name: "faktory" } -2779.986871763s DEBUG mutant{id=274}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2781.392125797s DEBUG mutant{id=274}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.405306442s -2781.392184285s DEBUG mutant{id=274}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2797.092241664s DEBUG mutant{id=274}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=15.700065169s -2797.092323606s TRACE mutant{id=274}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::reconnect", return_type: "-> Result<(), Error>", span: Span(163, 5, 166, 6) }), replacement: "Ok(())", genre: FnValue, span: Span(164, 9, 165, 26), package_name: "faktory" } -2797.095725234s DEBUG mutant{id=274}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2797.096020883s TRACE mutant{id=275}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(None)", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -2797.096171802s DEBUG mutant{id=275}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2798.250968443s DEBUG mutant{id=275}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=1.15482007s -2798.251041687s DEBUG mutant{id=275}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2813.159069186s DEBUG mutant{id=275}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=14.908050537s -2813.159222332s TRACE mutant{id=275}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "parse_datetime", return_type: "-> Result>, D::Error>", span: Span(9, 1, 17, 2) }), replacement: "Ok(None)", genre: FnValue, span: Span(13, 5, 16, 6), package_name: "faktory" } -2813.163375334s DEBUG mutant{id=275}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=MissedMutant -2813.163674421s TRACE mutant{id=276}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:179: Apply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::new())", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } -2813.163876144s DEBUG mutant{id=276}:run{phase=Build}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml -2813.265521700s DEBUG mutant{id=276}:run{phase=Build}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Success elapsed=101.683671ms -2813.265628954s DEBUG mutant{id=276}:run{phase=Test}: cargo_mutants::process: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/process.rs:74: start process quoted_argv=/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets -2813.517457036s DEBUG mutant{id=276}:run{phase=Test}: cargo_mutants::cargo: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/cargo.rs:39: process_status=Failure(101) elapsed=251.847264ms -2813.517489557s TRACE mutant{id=276}: cargo_mutants::mutate: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/mutate.rs:188: Unapply mutant self=Mutant { function: Some(Function { function_name: "Client::start_batch", return_type: "-> Result, Error>", span: Span(27, 5, 31, 6) }), replacement: "Ok(BatchHandle::new())", genre: FnValue, span: Span(29, 9, 30, 40), package_name: "faktory" } -2813.519144794s DEBUG mutant{id=276}: cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:252: outcome=CaughtMutant -2813.519164260s TRACE cargo_mutants::lab: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-mutants-24.3.0/src/lab.rs:133: no more work diff --git a/mutants.out/lock.json b/mutants.out/lock.json deleted file mode 100644 index 58a0d58b..00000000 --- a/mutants.out/lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cargo_mutants_version": "24.3.0", - "start_time": "2024-04-08T10:53:20.111253184Z", - "hostname": "rustworthy", - "username": "pavel" -} \ No newline at end of file diff --git a/mutants.out/log/baseline.log b/mutants.out/log/baseline.log deleted file mode 100644 index 1432fef4..00000000 --- a/mutants.out/log/baseline.log +++ /dev/null @@ -1,230 +0,0 @@ - -*** baseline - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling proc-macro2 v1.0.79 - Compiling unicode-ident v1.0.12 - Compiling syn v1.0.109 - Compiling libc v0.2.153 - Compiling autocfg v1.1.0 - Compiling version_check v0.9.4 - Compiling typenum v1.17.0 - Compiling ident_case v1.0.1 - Compiling fnv v1.0.7 - Compiling strsim v0.10.0 - Compiling itoa v1.0.10 - Compiling thiserror v1.0.58 - Compiling unicode-xid v0.2.4 - Compiling minimal-lexical v0.2.1 - Compiling memchr v2.7.1 - Compiling powerfmt v0.2.0 - Compiling cfg-if v1.0.0 - Compiling num-conv v0.1.0 - Compiling time-core v0.1.2 - Compiling pin-project-lite v0.2.13 - Compiling tinyvec_macros v0.1.1 - Compiling serde v1.0.197 - Compiling bytes v1.5.0 - Compiling percent-encoding v2.3.1 - Compiling serde_json v1.0.114 - Compiling unicode-bidi v0.3.15 - Compiling futures-core v0.3.30 - Compiling async-trait v0.1.78 - Compiling oid-registry v0.6.1 - Compiling ppv-lite86 v0.2.17 - Compiling iana-time-zone v0.1.60 - Compiling cpufeatures v0.2.12 - Compiling tinyvec v1.6.0 - Compiling match_cfg v0.1.0 - Compiling ryu v1.0.17 - Compiling lazy_static v1.4.0 - Compiling data-encoding v2.5.0 - Compiling form_urlencoded v1.2.1 - Compiling time-macros v0.2.17 - Compiling deranged v0.3.11 - Compiling generic-array v0.14.7 - Compiling num-traits v0.2.18 - Compiling num-bigint v0.4.4 - Compiling quote v1.0.35 - Compiling nom v7.1.3 - Compiling getrandom v0.2.12 - Compiling socket2 v0.5.6 - Compiling mio v0.8.11 - Compiling num_cpus v1.16.0 - Compiling hostname v0.3.1 - Compiling syn v2.0.53 - Compiling rand_core v0.6.4 - Compiling unicode-normalization v0.1.23 - Compiling rand_chacha v0.3.1 - Compiling rand v0.8.5 - Compiling time v0.3.34 - Compiling crypto-common v0.1.6 - Compiling block-buffer v0.10.4 - Compiling idna v0.5.0 - Compiling digest v0.10.7 - Compiling sha2 v0.10.8 - Compiling num-integer v0.1.46 - Compiling url v2.5.0 - Compiling rusticata-macros v4.1.0 - Compiling chrono v0.4.35 - Compiling darling_core v0.14.4 - Compiling synstructure v0.12.6 - Compiling thiserror-impl v1.0.58 - Compiling displaydoc v0.2.4 - Compiling tokio-macros v2.2.0 - Compiling async-stream-impl v0.3.5 - Compiling serde_derive v1.0.197 - Compiling asn1-rs-derive v0.4.0 - Compiling asn1-rs-impl v0.1.0 - Compiling async-stream v0.3.5 - Compiling tokio v1.36.0 - Compiling asn1-rs v0.5.2 - Compiling darling_macro v0.14.4 - Compiling darling v0.14.4 - Compiling derive_builder_core v0.12.0 - Compiling der-parser v8.2.0 - Compiling x509-parser v0.15.1 - Compiling derive_builder_macro v0.12.0 - Compiling derive_builder v0.12.0 - Compiling tokio-stream v0.1.15 - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Compiling tokio-test v0.4.4 - Finished dev [unoptimized + debuginfo] target(s) in 5.53s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling pkg-config v0.3.30 - Compiling vcpkg v0.2.15 - Compiling cc v1.0.90 - Compiling openssl v0.10.64 - Compiling foreign-types-shared v0.1.1 - Compiling utf8parse v0.2.1 - Compiling openssl-macros v0.1.1 - Compiling anstyle v1.0.6 - Compiling colorchoice v1.0.0 - Compiling bitflags v2.5.0 - Compiling once_cell v1.19.0 - Compiling anstyle-query v1.0.2 - Compiling native-tls v0.2.11 - Compiling openssl-probe v0.1.5 - Compiling clap_lex v0.7.0 - Compiling log v0.4.21 - Compiling strsim v0.11.0 - Compiling pin-project-internal v1.1.5 - Compiling foreign-types v0.3.2 - Compiling anstyle-parse v0.2.3 - Compiling anstream v0.6.13 - Compiling clap_builder v4.5.2 - Compiling openssl-sys v0.9.102 - Compiling pin-project v1.1.5 - Compiling clap v4.5.3 - Compiling tokio-native-tls v0.3.1 - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 4.39s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.42s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_109_col_36.log b/mutants.out/log/src__bin__loadtest.rs_line_109_col_36.log deleted file mode 100644 index 0bdd96b1..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_109_col_36.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/bin/loadtest.rs:109:36: replace * with / in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace * with / in main -@@ -101,17 +101,17 @@ - - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -+ let stop_secs = stop.as_secs() / /* ~ changed by cargo-mutants ~ */ 1_000_000_000 + u64::from(stop.subsec_nanos()); - let stop_secs = stop_secs as f64 / 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.98s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.50s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::fail ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::multi ... ok -test community::hello_client ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::queue ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_expiring_job ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_109_col_36_001.log b/mutants.out/log/src__bin__loadtest.rs_line_109_col_36_001.log deleted file mode 100644 index 096494bf..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_109_col_36_001.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/bin/loadtest.rs:109:36: replace * with + in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace * with + in main -@@ -101,17 +101,17 @@ - - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -+ let stop_secs = stop.as_secs() + /* ~ changed by cargo-mutants ~ */ 1_000_000_000 + u64::from(stop.subsec_nanos()); - let stop_secs = stop_secs as f64 / 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.22s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.53s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test community::hello_client ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test community::hello_worker ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_109_col_52.log b/mutants.out/log/src__bin__loadtest.rs_line_109_col_52.log deleted file mode 100644 index c327a6c1..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_109_col_52.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/bin/loadtest.rs:109:52: replace + with * in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace + with * in main -@@ -101,17 +101,17 @@ - - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -+ let stop_secs = stop.as_secs() * 1_000_000_000 * /* ~ changed by cargo-mutants ~ */ u64::from(stop.subsec_nanos()); - let stop_secs = stop_secs as f64 / 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.84s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.27s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.16s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test community::hello_worker ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok -test community::hello_client ... ok -test community::enqueue_job ... ok -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_pushed_in_bulk ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_109_col_52_001.log b/mutants.out/log/src__bin__loadtest.rs_line_109_col_52_001.log deleted file mode 100644 index e84e2c07..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_109_col_52_001.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/bin/loadtest.rs:109:52: replace + with - in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace + with - in main -@@ -101,17 +101,17 @@ - - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -+ let stop_secs = stop.as_secs() * 1_000_000_000 - /* ~ changed by cargo-mutants ~ */ u64::from(stop.subsec_nanos()); - let stop_secs = stop_secs as f64 / 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.85s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.36s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_worker ... ok -test community::queue ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::fail ... ok -test community::hello_client ... ok -test community::enqueue_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_110_col_38.log b/mutants.out/log/src__bin__loadtest.rs_line_110_col_38.log deleted file mode 100644 index ffc9b6b9..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_110_col_38.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/bin/loadtest.rs:110:38: replace / with * in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace / with * in main -@@ -102,17 +102,17 @@ - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - - let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -- let stop_secs = stop_secs as f64 / 1_000_000_000.0; -+ let stop_secs = stop_secs as f64 * /* ~ changed by cargo-mutants ~ */ 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - println!("{:?}", _ops_count); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.29s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test community::queue ... ok -test community::enqueue_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job ... ok -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_client ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_110_col_38_001.log b/mutants.out/log/src__bin__loadtest.rs_line_110_col_38_001.log deleted file mode 100644 index 5c495b25..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_110_col_38_001.log +++ /dev/null @@ -1,141 +0,0 @@ - -*** src/bin/loadtest.rs:110:38: replace / with % in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace / with % in main -@@ -102,17 +102,17 @@ - let mut _ops_count = Vec::with_capacity(threads); - while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) - } - - let stop = start.elapsed(); - - let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -- let stop_secs = stop_secs as f64 / 1_000_000_000.0; -+ let stop_secs = stop_secs as f64 % /* ~ changed by cargo-mutants ~ */ 1_000_000_000.0; - println!( - "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", - pushed.load(atomic::Ordering::SeqCst), - popped.load(atomic::Ordering::SeqCst), - stop_secs, - jobs as f64 / stop_secs, - ); - println!("{:?}", _ops_count); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.02s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.03s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::hello_client ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_15_col_5.log b/mutants.out/log/src__bin__loadtest.rs_line_15_col_5.log deleted file mode 100644 index 3ece4815..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_15_col_5.log +++ /dev/null @@ -1,237 +0,0 @@ - -*** src/bin/loadtest.rs:15:5: replace main with () - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace main with () -@@ -7,113 +7,10 @@ - use std::sync::{self, atomic}; - use std::time; - use tokio::task; - - const QUEUES: &[&str] = &["queue0", "queue1", "queue2", "queue3", "queue4"]; - - #[tokio::main] - async fn main() { -- let matches = Command::new("My Super Program (Async)") -- .version("0.1") -- .about("Benchmark the performance of Rust Faktory async workers and client") -- .arg( -- Arg::new("jobs") -- .help("Number of jobs to run") -- .value_parser(value_parser!(usize)) -- .index(1) -- .default_value("30000"), -- ) -- .arg( -- Arg::new("threads") -- .help("Number of workers/clients to run") -- .value_parser(value_parser!(usize)) -- .index(2) -- .default_value("10"), -- ) -- .get_matches(); -- -- let jobs: usize = *matches.get_one("jobs").expect("default_value is set"); -- let threads: usize = *matches.get_one("threads").expect("default_value is set"); -- println!( -- "Running loadtest with {} jobs and {} threads", -- jobs, threads -- ); -- -- // ensure that we can actually connect to the server; -- // will create a client, run a handshake with Faktory, -- // and drop the cliet immediately afterwards; -- if let Err(e) = Client::connect(None).await { -- println!("{}", e); -- process::exit(1); -- } -- -- let pushed = sync::Arc::new(atomic::AtomicUsize::new(0)); -- let popped = sync::Arc::new(atomic::AtomicUsize::new(0)); -- -- let start = time::Instant::now(); -- -- let mut set = task::JoinSet::new(); -- for _ in 0..threads { -- let pushed = sync::Arc::clone(&pushed); -- let popped = sync::Arc::clone(&popped); -- set.spawn(async move { -- // make producer and consumer -- let mut p = Client::connect(None).await.unwrap(); -- let mut c = WorkerBuilder::default(); -- c.register("SomeJob", |_| { -- Box::pin(async move { -- let mut rng = rand::thread_rng(); -- if rng.gen_bool(0.01) { -- Err(io::Error::new(io::ErrorKind::Other, "worker closed")) -- } else { -- Ok(()) -- } -- }) -- }); -- let mut c = c.connect(None).await.unwrap(); -- -- let mut rng = rand::rngs::OsRng; -- let mut random_queues = Vec::from(QUEUES); -- random_queues.shuffle(&mut rng); -- for idx in 0..jobs { -- if idx % 2 == 0 { -- // push -- let mut job = Job::new( -- "SomeJob", -- vec![serde_json::Value::from(1), "string".into(), 3.into()], -- ); -- job.priority = Some(rng.gen_range(1..10)); -- job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); -- p.enqueue(job).await?; -- if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { -- return Ok::(idx); -- } -- } else { -- // pop -- c.run_one(0, &random_queues[..]).await?; -- if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { -- return Ok(idx); -- } -- } -- } -- Ok(jobs) -- }); -- } -- -- let mut _ops_count = Vec::with_capacity(threads); -- while let Some(res) = set.join_next().await { -- _ops_count.push(res.unwrap()) -- } -- -- let stop = start.elapsed(); -- -- let stop_secs = stop.as_secs() * 1_000_000_000 + u64::from(stop.subsec_nanos()); -- let stop_secs = stop_secs as f64 / 1_000_000_000.0; -- println!( -- "Processed {} pushes and {} pops in {:.2} seconds, rate: {} jobs/s", -- pushed.load(atomic::Ordering::SeqCst), -- popped.load(atomic::Ordering::SeqCst), -- stop_secs, -- jobs as f64 / stop_secs, -- ); -- println!("{:?}", _ops_count); -+ () /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.24s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.05s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test community::multi ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_worker ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test community::hello_client ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_78_col_24.log b/mutants.out/log/src__bin__loadtest.rs_line_78_col_24.log deleted file mode 100644 index 7267d2fa..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_78_col_24.log +++ /dev/null @@ -1,141 +0,0 @@ - -*** src/bin/loadtest.rs:78:24: replace % with / in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace % with / in main -@@ -70,17 +70,17 @@ - }) - }); - let mut c = c.connect(None).await.unwrap(); - - let mut rng = rand::rngs::OsRng; - let mut random_queues = Vec::from(QUEUES); - random_queues.shuffle(&mut rng); - for idx in 0..jobs { -- if idx % 2 == 0 { -+ if idx / /* ~ changed by cargo-mutants ~ */ 2 == 0 { - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.40s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.19s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::hello_worker ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_client ... ok -test community::queue ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_78_col_24_001.log b/mutants.out/log/src__bin__loadtest.rs_line_78_col_24_001.log deleted file mode 100644 index a0917f6c..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_78_col_24_001.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/bin/loadtest.rs:78:24: replace % with + in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace % with + in main -@@ -70,17 +70,17 @@ - }) - }); - let mut c = c.connect(None).await.unwrap(); - - let mut rng = rand::rngs::OsRng; - let mut random_queues = Vec::from(QUEUES); - random_queues.shuffle(&mut rng); - for idx in 0..jobs { -- if idx % 2 == 0 { -+ if idx + /* ~ changed by cargo-mutants ~ */ 2 == 0 { - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.78s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.25s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.03s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test community::queue ... ok -test community::hello_worker ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_78_col_28.log b/mutants.out/log/src__bin__loadtest.rs_line_78_col_28.log deleted file mode 100644 index 0af4e27e..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_78_col_28.log +++ /dev/null @@ -1,141 +0,0 @@ - -*** src/bin/loadtest.rs:78:28: replace == with != in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace == with != in main -@@ -70,17 +70,17 @@ - }) - }); - let mut c = c.connect(None).await.unwrap(); - - let mut rng = rand::rngs::OsRng; - let mut random_queues = Vec::from(QUEUES); - random_queues.shuffle(&mut rng); - for idx in 0..jobs { -- if idx % 2 == 0 { -+ if idx % 2 != /* ~ changed by cargo-mutants ~ */ 0 { - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.12s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.60s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::fail ... ok -test community::hello_worker ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_expiring_job ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_87_col_70.log b/mutants.out/log/src__bin__loadtest.rs_line_87_col_70.log deleted file mode 100644 index 4ef20a62..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_87_col_70.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/bin/loadtest.rs:87:70: replace >= with < in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace >= with < in main -@@ -79,17 +79,17 @@ - // push - let mut job = Job::new( - "SomeJob", - vec![serde_json::Value::from(1), "string".into(), 3.into()], - ); - job.priority = Some(rng.gen_range(1..10)); - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; -- if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { -+ if pushed.fetch_add(1, atomic::Ordering::SeqCst) < /* ~ changed by cargo-mutants ~ */ jobs { - return Ok::(idx); - } - } else { - // pop - c.run_one(0, &random_queues[..]).await?; - if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { - return Ok(idx); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.33s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.32s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.10s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok -test community::roundtrip ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_client ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::enqueue_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_worker ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__bin__loadtest.rs_line_93_col_70.log b/mutants.out/log/src__bin__loadtest.rs_line_93_col_70.log deleted file mode 100644 index d800224d..00000000 --- a/mutants.out/log/src__bin__loadtest.rs_line_93_col_70.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/bin/loadtest.rs:93:70: replace >= with < in main - -*** mutation diff: ---- src/bin/loadtest.rs -+++ replace >= with < in main -@@ -85,17 +85,17 @@ - job.queue = QUEUES.choose(&mut rng).unwrap().to_string(); - p.enqueue(job).await?; - if pushed.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { - return Ok::(idx); - } - } else { - // pop - c.run_one(0, &random_queues[..]).await?; -- if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { -+ if popped.fetch_add(1, atomic::Ordering::SeqCst) < /* ~ changed by cargo-mutants ~ */ jobs { - return Ok(idx); - } - } - } - Ok(jobs) - }); - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.77s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.33s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.18s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::hello_client ... ok -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::enqueue_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__batch__cmd.rs_line_8_col_9.log b/mutants.out/log/src__proto__batch__cmd.rs_line_8_col_9.log deleted file mode 100644 index 4b06f3cb..00000000 --- a/mutants.out/log/src__proto__batch__cmd.rs_line_8_col_9.log +++ /dev/null @@ -1,144 +0,0 @@ - -*** src/proto/batch/cmd.rs:8:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/batch/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -1,19 +1,16 @@ - use crate::error::Error; - use crate::proto::{single::FaktoryCommand, Batch, BatchId}; - use tokio::io::AsyncWriteExt; - - #[async_trait::async_trait] - impl FaktoryCommand for Batch { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- w.write_all(b"BATCH NEW ").await?; -- let r = serde_json::to_vec(self).map_err(Error::Serialization)?; -- w.write_all(&r).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - macro_rules! batch_cmd { - ($structure:ident, $cmd:expr) => { - impl From for $structure { - fn from(value: BatchId) -> Self { - $structure(value) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.86s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.47s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.36s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::fail ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_client ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::queue ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__batch__handle.rs_line_14_col_9.log b/mutants.out/log/src__proto__batch__handle.rs_line_14_col_9.log deleted file mode 100644 index 6fc135da..00000000 --- a/mutants.out/log/src__proto__batch__handle.rs_line_14_col_9.log +++ /dev/null @@ -1,50 +0,0 @@ - -*** src/proto/batch/handle.rs:14:9: replace BatchHandle<'a, S>::id -> &BatchId with &Default::default() - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::id -> &BatchId with &Default::default() -@@ -6,17 +6,17 @@ - pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - bid: BatchId, - c: &'a mut Client, - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { - /// ID issued by the Faktory server to this batch. - pub fn id(&self) -> &BatchId { -- &self.bid -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - BatchHandle { bid, c } - } - - /// Add the given job to the batch. - /// - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0515]: cannot return reference to temporary value - --> src/proto/batch/handle.rs:14:9 - | -14 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^------------------ - | || - | |temporary value created here - | returns a reference to data owned by the current function - -For more information about this error, try `rustc --explain E0515`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9.log b/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9.log deleted file mode 100644 index 85a958ff..00000000 --- a/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9.log +++ /dev/null @@ -1,143 +0,0 @@ - -*** src/proto/batch/handle.rs:27:9: replace BatchHandle<'a, S>::add -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::add -> Result, Error> with Ok(None) -@@ -19,18 +19,17 @@ - } - - /// Add the given job to the batch. - /// - /// Should the submitted job - for whatever reason - already have a `bid` key present in its custom hash, - /// this value will be overwritten by the ID of the batch this job is being added to with the old value - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { -- let bid = job.custom.insert("bid".into(), self.bid.clone().into()); -- self.c.enqueue(job).await.map(|_| bid) -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { - batch.parent_bid = Some(self.bid.clone()); - self.c.start_batch(batch).await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.88s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.48s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test community::fail ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::enqueue_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::roundtrip ... ok -test community::test_jobs_created_with_builder ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9_001.log b/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9_001.log deleted file mode 100644 index 3846b95c..00000000 --- a/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9_001.log +++ /dev/null @@ -1,143 +0,0 @@ - -*** src/proto/batch/handle.rs:27:9: replace BatchHandle<'a, S>::add -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::add -> Result, Error> with Ok(Some(Default::default())) -@@ -19,18 +19,17 @@ - } - - /// Add the given job to the batch. - /// - /// Should the submitted job - for whatever reason - already have a `bid` key present in its custom hash, - /// this value will be overwritten by the ID of the batch this job is being added to with the old value - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { -- let bid = job.custom.insert("bid".into(), self.bid.clone().into()); -- self.c.enqueue(job).await.map(|_| bid) -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { - batch.parent_bid = Some(self.bid.clone()); - self.c.start_batch(batch).await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.98s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.56s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.13s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test community::fail ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9.log b/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9.log deleted file mode 100644 index 26de614c..00000000 --- a/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9.log +++ /dev/null @@ -1,59 +0,0 @@ - -*** src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) -@@ -25,18 +25,17 @@ - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { -- batch.parent_bid = Some(self.bid.clone()); -- self.c.start_batch(batch).await -+ Ok(BatchHandle::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.06s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BatchHandle` in the current scope - --> src/proto/batch/handle.rs:33:25 - | -6 | pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - | ----------------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -33 | Ok(BatchHandle::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BatchHandle<'_, _>` - | -note: if you're trying to build a new `BatchHandle<'_, _>`, consider using `BatchHandle::<'a, S>::new` which returns `BatchHandle<'_, S>` - --> src/proto/batch/handle.rs:17:5 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_001.log b/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_001.log deleted file mode 100644 index 32f9c250..00000000 --- a/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_001.log +++ /dev/null @@ -1,57 +0,0 @@ - -*** src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new()) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new()) -@@ -25,18 +25,17 @@ - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { -- batch.parent_bid = Some(self.bid.clone()); -- self.c.start_batch(batch).await -+ Ok(BatchHandle::new()) /* ~ changed by cargo-mutants ~ */ - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/batch/handle.rs:33:12 - | -33 | Ok(BatchHandle::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-- two arguments of type `BatchId` and `&mut Client` are missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the arguments - | -33 | Ok(BatchHandle::new(/* BatchId */, /* &mut Client */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_002.log b/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_002.log deleted file mode 100644 index e39ccf64..00000000 --- a/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_002.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) -@@ -25,18 +25,17 @@ - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { -- batch.parent_bid = Some(self.bid.clone()); -- self.c.start_batch(batch).await -+ Ok(BatchHandle::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BatchHandle<'_, S>: Default` is not satisfied - --> src/proto/batch/handle.rs:33:30 - | -33 | Ok(BatchHandle::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchHandle<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_003.log b/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_003.log deleted file mode 100644 index 67c76fa7..00000000 --- a/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_003.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/batch/handle.rs:33:9: replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) -@@ -25,18 +25,17 @@ - /// returned as `Some()`. - pub async fn add(&mut self, mut job: Job) -> Result, Error> { - let bid = job.custom.insert("bid".into(), self.bid.clone().into()); - self.c.enqueue(job).await.map(|_| bid) - } - - /// Initiate a child batch of jobs. - pub async fn start_batch(&mut self, mut batch: Batch) -> Result, Error> { -- batch.parent_bid = Some(self.bid.clone()); -- self.c.start_batch(batch).await -+ Ok(BatchHandle::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.76s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/batch/handle.rs:33:12 - | -33 | Ok(BatchHandle::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-------------------- an argument of type `&mut Client` is missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the argument - | -33 | Ok(BatchHandle::new(Default::default(), /* &mut Client */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__handle.rs_line_44_col_9.log b/mutants.out/log/src__proto__batch__handle.rs_line_44_col_9.log deleted file mode 100644 index eb914232..00000000 --- a/mutants.out/log/src__proto__batch__handle.rs_line_44_col_9.log +++ /dev/null @@ -1,136 +0,0 @@ - -*** src/proto/batch/handle.rs:44:9: replace BatchHandle<'a, S>::commit -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/batch/handle.rs -+++ replace BatchHandle<'a, S>::commit -> Result<(), Error> with Ok(()) -@@ -36,11 +36,11 @@ - - /// Commit this batch. - /// - /// The Faktory server will not queue any callbacks, unless the batch is committed. - /// Committing an empty batch will make the server queue the callback(s) right away. - /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), - /// and extra jobs can be added to it. - pub async fn commit(self) -> Result<(), Error> { -- self.c.commit_batch(self.bid).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.86s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.31s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.06s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test community::hello_client ... ok -test community::queue ... ok -test community::hello_worker ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__batch__mod.rs_line_163_col_9.log b/mutants.out/log/src__proto__batch__mod.rs_line_163_col_9.log deleted file mode 100644 index 155ae9eb..00000000 --- a/mutants.out/log/src__proto__batch__mod.rs_line_163_col_9.log +++ /dev/null @@ -1,63 +0,0 @@ - -*** src/proto/batch/mod.rs:163:9: replace Batch::builder -> BatchBuilder with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace Batch::builder -> BatchBuilder with Default::default() -@@ -155,17 +155,17 @@ - #[serde(skip_serializing_if = "Option::is_none")] - #[builder(setter(skip))] - pub(crate) complete: Option, - } - - impl Batch { - /// Create a new `BatchBuilder`. - pub fn builder() -> BatchBuilder { -- BatchBuilder::new() -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl BatchBuilder { - fn build(self) -> Batch { - self.try_build().expect("There are no required fields.") - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.84s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:163:9 - | -163 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchBuilder` - | -help: consider annotating `BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `batch::BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:163:9 - | -163 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `batch::BatchBuilder` - | -help: consider annotating `batch::BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__mod.rs_line_169_col_9.log b/mutants.out/log/src__proto__batch__mod.rs_line_169_col_9.log deleted file mode 100644 index 43797a74..00000000 --- a/mutants.out/log/src__proto__batch__mod.rs_line_169_col_9.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/batch/mod.rs:169:9: replace BatchBuilder::build -> Batch with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::build -> Batch with Default::default() -@@ -161,17 +161,17 @@ - /// Create a new `BatchBuilder`. - pub fn builder() -> BatchBuilder { - BatchBuilder::new() - } - } - - impl BatchBuilder { - fn build(self) -> Batch { -- self.try_build().expect("There are no required fields.") -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new `BatchBuilder` with optional description of the batch. - pub fn new() -> BatchBuilder { - Self::create_empty() - } - - /// Batch description for Faktory WEB UI. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.15s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Batch: Default` is not satisfied - --> src/proto/batch/mod.rs:169:9 - | -169 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Batch` - | -help: consider annotating `Batch` with `#[derive(Default)]` - | -132 + #[derive(Default)] -133 | pub struct Batch { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__mod.rs_line_179_col_9.log b/mutants.out/log/src__proto__batch__mod.rs_line_179_col_9.log deleted file mode 100644 index a4853f74..00000000 --- a/mutants.out/log/src__proto__batch__mod.rs_line_179_col_9.log +++ /dev/null @@ -1,63 +0,0 @@ - -*** src/proto/batch/mod.rs:179:9: replace BatchBuilder::description -> Self with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::description -> Self with Default::default() -@@ -171,18 +171,17 @@ - - /// Create a new `BatchBuilder` with optional description of the batch. - pub fn new() -> BatchBuilder { - Self::create_empty() - } - - /// Batch description for Faktory WEB UI. - pub fn description(mut self, description: impl Into) -> Self { -- self.description = Some(Some(description.into())); -- self -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a `Batch` with only `success` callback specified. - pub fn with_success_callback(self, success_cb: Job) -> Batch { - let mut b = self.build(); - b.success = Some(success_cb); - b - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:179:9 - | -179 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchBuilder` - | -help: consider annotating `BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `batch::BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:179:9 - | -179 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `batch::BatchBuilder` - | -help: consider annotating `batch::BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__mod.rs_line_185_col_9.log b/mutants.out/log/src__proto__batch__mod.rs_line_185_col_9.log deleted file mode 100644 index 1b4e8000..00000000 --- a/mutants.out/log/src__proto__batch__mod.rs_line_185_col_9.log +++ /dev/null @@ -1,55 +0,0 @@ - -*** src/proto/batch/mod.rs:185:9: replace BatchBuilder::with_success_callback -> Batch with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::with_success_callback -> Batch with Default::default() -@@ -177,19 +177,17 @@ - /// Batch description for Faktory WEB UI. - pub fn description(mut self, description: impl Into) -> Self { - self.description = Some(Some(description.into())); - self - } - - /// Create a `Batch` with only `success` callback specified. - pub fn with_success_callback(self, success_cb: Job) -> Batch { -- let mut b = self.build(); -- b.success = Some(success_cb); -- b -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a `Batch` with only `complete` callback specified. - pub fn with_complete_callback(self, complete_cb: Job) -> Batch { - let mut b = self.build(); - b.complete = Some(complete_cb); - b - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.72s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Batch: Default` is not satisfied - --> src/proto/batch/mod.rs:185:9 - | -185 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Batch` - | -help: consider annotating `Batch` with `#[derive(Default)]` - | -132 + #[derive(Default)] -133 | pub struct Batch { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__mod.rs_line_192_col_9.log b/mutants.out/log/src__proto__batch__mod.rs_line_192_col_9.log deleted file mode 100644 index b897ad5b..00000000 --- a/mutants.out/log/src__proto__batch__mod.rs_line_192_col_9.log +++ /dev/null @@ -1,55 +0,0 @@ - -*** src/proto/batch/mod.rs:192:9: replace BatchBuilder::with_complete_callback -> Batch with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::with_complete_callback -> Batch with Default::default() -@@ -184,19 +184,17 @@ - pub fn with_success_callback(self, success_cb: Job) -> Batch { - let mut b = self.build(); - b.success = Some(success_cb); - b - } - - /// Create a `Batch` with only `complete` callback specified. - pub fn with_complete_callback(self, complete_cb: Job) -> Batch { -- let mut b = self.build(); -- b.complete = Some(complete_cb); -- b -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a `Batch` with both `success` and `complete` callbacks specified. - pub fn with_callbacks(self, success_cb: Job, complete_cb: Job) -> Batch { - let mut b = self.build(); - b.success = Some(success_cb); - b.complete = Some(complete_cb); - b - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.93s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Batch: Default` is not satisfied - --> src/proto/batch/mod.rs:192:9 - | -192 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Batch` - | -help: consider annotating `Batch` with `#[derive(Default)]` - | -132 + #[derive(Default)] -133 | pub struct Batch { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__mod.rs_line_199_col_9.log b/mutants.out/log/src__proto__batch__mod.rs_line_199_col_9.log deleted file mode 100644 index a6e0e350..00000000 --- a/mutants.out/log/src__proto__batch__mod.rs_line_199_col_9.log +++ /dev/null @@ -1,56 +0,0 @@ - -*** src/proto/batch/mod.rs:199:9: replace BatchBuilder::with_callbacks -> Batch with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace BatchBuilder::with_callbacks -> Batch with Default::default() -@@ -191,20 +191,17 @@ - pub fn with_complete_callback(self, complete_cb: Job) -> Batch { - let mut b = self.build(); - b.complete = Some(complete_cb); - b - } - - /// Create a `Batch` with both `success` and `complete` callbacks specified. - pub fn with_callbacks(self, success_cb: Job, complete_cb: Job) -> Batch { -- let mut b = self.build(); -- b.success = Some(success_cb); -- b.complete = Some(complete_cb); -- b -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl Clone for BatchBuilder { - fn clone(&self) -> Self { - BatchBuilder { - parent_bid: self.parent_bid.clone(), - description: self.description.clone(), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.23s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Batch: Default` is not satisfied - --> src/proto/batch/mod.rs:199:9 - | -199 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Batch` - | -help: consider annotating `Batch` with `#[derive(Default)]` - | -132 + #[derive(Default)] -133 | pub struct Batch { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__mod.rs_line_208_col_9.log b/mutants.out/log/src__proto__batch__mod.rs_line_208_col_9.log deleted file mode 100644 index 77631762..00000000 --- a/mutants.out/log/src__proto__batch__mod.rs_line_208_col_9.log +++ /dev/null @@ -1,67 +0,0 @@ - -*** src/proto/batch/mod.rs:208:9: replace ::clone -> Self with Default::default() - -*** mutation diff: ---- src/proto/batch/mod.rs -+++ replace ::clone -> Self with Default::default() -@@ -200,22 +200,17 @@ - b.success = Some(success_cb); - b.complete = Some(complete_cb); - b - } - } - - impl Clone for BatchBuilder { - fn clone(&self) -> Self { -- BatchBuilder { -- parent_bid: self.parent_bid.clone(), -- description: self.description.clone(), -- success: self.success.clone(), -- complete: self.complete.clone(), -- } -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[cfg(test)] - mod test { - use std::str::FromStr; - - use chrono::{DateTime, Utc}; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:208:9 - | -208 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchBuilder` - | -help: consider annotating `BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `batch::BatchBuilder: Default` is not satisfied - --> src/proto/batch/mod.rs:208:9 - | -208 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `batch::BatchBuilder` - | -help: consider annotating `batch::BatchBuilder` with `#[derive(Default)]` - | -125 | #[derive(#[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__status.rs_line_31_col_9.log b/mutants.out/log/src__proto__batch__status.rs_line_31_col_9.log deleted file mode 100644 index 59f0dbe1..00000000 --- a/mutants.out/log/src__proto__batch__status.rs_line_31_col_9.log +++ /dev/null @@ -1,148 +0,0 @@ - -*** src/proto/batch/status.rs:31:9: replace ::fmt -> std::fmt::Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace ::fmt -> std::fmt::Result with Ok(Default::default()) -@@ -23,23 +23,17 @@ - Enqueued, - /// The enqueued callback job has been consumed and successfully executed. - #[serde(rename = "2")] - FinishedOk, - } - - impl std::fmt::Display for CallbackState { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { -- use CallbackState::*; -- let s = match self { -- Pending => "Pending", -- Enqueued => "Enqueued", -- FinishedOk => "FinishedOk", -- }; -- write!(f, "{}", s) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - /// Batch status retrieved from Faktory server. - #[derive(Deserialize, Debug)] - pub struct BatchStatus { - // Fields "bid", "created_at", "description", "total", "pending", and "failed" - // are described in the docs: https://github.com/contribsys/faktory/wiki/Ent-Batches#status - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.50s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.28s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_success ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_worker ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::fail ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::queue ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9.log b/mutants.out/log/src__proto__batch__status.rs_line_90_col_9.log deleted file mode 100644 index d864310f..00000000 --- a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(Some(BatchHandle::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.06s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BatchHandle` in the current scope - --> src/proto/batch/status.rs:90:30 - | -90 | Ok(Some(BatchHandle::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BatchHandle<'_, _>` - | - ::: src/proto/batch/handle.rs:6:1 - | -6 | pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - | ----------------------------------------------------------------------------- function or associated item `from_iter` not found for this struct - | -note: if you're trying to build a new `BatchHandle<'_, _>`, consider using `BatchHandle::<'a, S>::new` which returns `BatchHandle<'_, S>` - --> src/proto/batch/handle.rs:17:5 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_001.log b/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_001.log deleted file mode 100644 index 828355f2..00000000 --- a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_001.log +++ /dev/null @@ -1,51 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new())) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new())) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(Some(BatchHandle::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.74s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/batch/status.rs:90:17 - | -90 | Ok(Some(BatchHandle::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-- two arguments of type `BatchId` and `&mut Client` are missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the arguments - | -90 | Ok(Some(BatchHandle::new(/* BatchId */, /* &mut Client */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_002.log b/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_002.log deleted file mode 100644 index 1527102d..00000000 --- a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_002.log +++ /dev/null @@ -1,51 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(Some(BatchHandle::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.76s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/batch/status.rs:90:17 - | -90 | Ok(Some(BatchHandle::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-------------------- an argument of type `&mut Client` is missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the argument - | -90 | Ok(Some(BatchHandle::new(Default::default(), /* &mut Client */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_003.log b/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_003.log deleted file mode 100644 index 9e53cc2d..00000000 --- a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_003.log +++ /dev/null @@ -1,136 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(None) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(None) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.00s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.23s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::fail ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::hello_client ... ok -test enterprise::ent_expiring_job ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_004.log b/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_004.log deleted file mode 100644 index 6c5921ad..00000000 --- a/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_004.log +++ /dev/null @@ -1,40 +0,0 @@ - -*** src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) - -*** mutation diff: ---- src/proto/batch/status.rs -+++ replace BatchStatus::open -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) -@@ -82,11 +82,11 @@ - impl<'a> BatchStatus { - /// Open the batch for which this `BatchStatus` has been retrieved. - /// - /// See [`open_batch`](Client::open_batch). - pub async fn open( - &self, - prod: &'a mut Client, - ) -> Result>, Error> { -- prod.open_batch(self.bid.clone()).await -+ Ok(Some(BatchHandle::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BatchHandle<'_, S>: Default` is not satisfied - --> src/proto/batch/status.rs:90:35 - | -90 | Ok(Some(BatchHandle::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchHandle<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_11_col_9.log b/mutants.out/log/src__proto__client__ent.rs_line_11_col_9.log deleted file mode 100644 index a267be1d..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_11_col_9.log +++ /dev/null @@ -1,143 +0,0 @@ - -*** src/proto/client/ent.rs:11:9: replace Client::set_progress -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::set_progress -> Result<(), Error> with Ok(()) -@@ -3,18 +3,17 @@ - use super::{Client, ReadToken}; - use crate::ent::{Batch, BatchHandle, BatchId}; - use crate::error::Error; - use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; - - impl Client { - /// Send information on a job's execution progress to Faktory. - pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { -- let cmd = Track::Set(upd); -- self.issue(&cmd).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { - let cmd = Track::Get(jid); - self.issue(&cmd).await?.read_json().await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.60s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test community::fail ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_success ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__ent.rs_line_17_col_9.log b/mutants.out/log/src__proto__client__ent.rs_line_17_col_9.log deleted file mode 100644 index 55a541fd..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_17_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/proto/client/ent.rs:17:9: replace Client::get_progress -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::get_progress -> Result, Error> with Ok(Some(Default::default())) -@@ -9,18 +9,17 @@ - /// Send information on a job's execution progress to Faktory. - pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { - let cmd = Track::Set(upd); - self.issue(&cmd).await?.read_ok().await - } - - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { -- let cmd = Track::Get(jid); -- self.issue(&cmd).await?.read_json().await -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.94s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Progress: Default` is not satisfied - --> src/proto/client/ent.rs:17:17 - | -17 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Progress` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_17_col_9_001.log b/mutants.out/log/src__proto__client__ent.rs_line_17_col_9_001.log deleted file mode 100644 index dfbf3e6c..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_17_col_9_001.log +++ /dev/null @@ -1,143 +0,0 @@ - -*** src/proto/client/ent.rs:17:9: replace Client::get_progress -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::get_progress -> Result, Error> with Ok(None) -@@ -9,18 +9,17 @@ - /// Send information on a job's execution progress to Faktory. - pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { - let cmd = Track::Set(upd); - self.issue(&cmd).await?.read_ok().await - } - - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { -- let cmd = Track::Get(jid); -- self.issue(&cmd).await?.read_json().await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.76s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.40s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.27s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::enqueue_job ... ok -test community::fail ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::multi ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__ent.rs_line_23_col_9.log b/mutants.out/log/src__proto__client__ent.rs_line_23_col_9.log deleted file mode 100644 index f8bba621..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_23_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/proto/client/ent.rs:23:9: replace Client::get_batch_status -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::get_batch_status -> Result, Error> with Ok(Some(Default::default())) -@@ -15,18 +15,17 @@ - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { - let cmd = Track::Get(jid); - self.issue(&cmd).await?.read_json().await - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { -- let cmd = GetBatchStatus::from(bid); -- self.issue(&cmd).await?.read_json().await -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { - let bid = self.issue(&batch).await?.read_bid().await?; - Ok(BatchHandle::new(bid, self)) - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BatchStatus: Default` is not satisfied - --> src/proto/client/ent.rs:23:17 - | -23 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchStatus` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_23_col_9_001.log b/mutants.out/log/src__proto__client__ent.rs_line_23_col_9_001.log deleted file mode 100644 index 1bdd03cd..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_23_col_9_001.log +++ /dev/null @@ -1,143 +0,0 @@ - -*** src/proto/client/ent.rs:23:9: replace Client::get_batch_status -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::get_batch_status -> Result, Error> with Ok(None) -@@ -15,18 +15,17 @@ - /// Fetch information on a job's execution progress from Faktory. - pub async fn get_progress(&mut self, jid: JobId) -> Result, Error> { - let cmd = Track::Get(jid); - self.issue(&cmd).await?.read_json().await - } - - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { -- let cmd = GetBatchStatus::from(bid); -- self.issue(&cmd).await?.read_json().await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { - let bid = self.issue(&batch).await?.read_bid().await?; - Ok(BatchHandle::new(bid, self)) - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.82s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.29s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_expiring_job ... ok -test community::enqueue_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test community::test_jobs_created_with_builder ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::fail ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__ent.rs_line_29_col_9.log b/mutants.out/log/src__proto__client__ent.rs_line_29_col_9.log deleted file mode 100644 index 70ea4842..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_29_col_9.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new(Default::default())) -@@ -21,18 +21,17 @@ - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { -- let bid = self.issue(&batch).await?.read_bid().await?; -- Ok(BatchHandle::new(bid, self)) -+ Ok(BatchHandle::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.02s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/ent.rs:29:12 - | -29 | Ok(BatchHandle::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-------------------- an argument of type `&mut Client` is missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the argument - | -29 | Ok(BatchHandle::new(Default::default(), /* &mut Client */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_001.log b/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_001.log deleted file mode 100644 index 146f8ff8..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_001.log +++ /dev/null @@ -1,62 +0,0 @@ - -*** src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from_iter([Default::default()])) -@@ -21,18 +21,17 @@ - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { -- let bid = self.issue(&batch).await?.read_bid().await?; -- Ok(BatchHandle::new(bid, self)) -+ Ok(BatchHandle::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.18s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BatchHandle` in the current scope - --> src/proto/client/ent.rs:29:25 - | -29 | Ok(BatchHandle::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BatchHandle<'_, _>` - | - ::: src/proto/batch/handle.rs:6:1 - | -6 | pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - | ----------------------------------------------------------------------------- function or associated item `from_iter` not found for this struct - | -note: if you're trying to build a new `BatchHandle<'_, _>`, consider using `BatchHandle::<'a, S>::new` which returns `BatchHandle<'_, S>` - --> src/proto/batch/handle.rs:17:5 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_002.log b/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_002.log deleted file mode 100644 index ad1e2684..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_002.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::start_batch -> Result, Error> with Ok(BatchHandle::from(Default::default())) -@@ -21,18 +21,17 @@ - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { -- let bid = self.issue(&batch).await?.read_bid().await?; -- Ok(BatchHandle::new(bid, self)) -+ Ok(BatchHandle::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BatchHandle<'_, S>: Default` is not satisfied - --> src/proto/client/ent.rs:29:30 - | -29 | Ok(BatchHandle::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchHandle<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_003.log b/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_003.log deleted file mode 100644 index a805af4c..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_003.log +++ /dev/null @@ -1,57 +0,0 @@ - -*** src/proto/client/ent.rs:29:9: replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new()) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::start_batch -> Result, Error> with Ok(BatchHandle::new()) -@@ -21,18 +21,17 @@ - /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); - self.issue(&cmd).await?.read_json().await - } - - /// Initiate a new batch of jobs. - pub async fn start_batch(&mut self, batch: Batch) -> Result, Error> { -- let bid = self.issue(&batch).await?.read_bid().await?; -- Ok(BatchHandle::new(bid, self)) -+ Ok(BatchHandle::new()) /* ~ changed by cargo-mutants ~ */ - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/client/ent.rs:29:12 - | -29 | Ok(BatchHandle::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-- two arguments of type `BatchId` and `&mut Client` are missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the arguments - | -29 | Ok(BatchHandle::new(/* BatchId */, /* &mut Client */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9.log b/mutants.out/log/src__proto__client__ent.rs_line_38_col_9.log deleted file mode 100644 index f3edf7ac..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from(Default::default()))) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(Some(BatchHandle::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.75s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BatchHandle<'_, S>: Default` is not satisfied - --> src/proto/client/ent.rs:38:35 - | -38 | Ok(Some(BatchHandle::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BatchHandle<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_001.log b/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_001.log deleted file mode 100644 index 316a63c1..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_001.log +++ /dev/null @@ -1,143 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(None) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.83s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.23s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.38s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_worker ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::queue ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::enqueue_job ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_002.log b/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_002.log deleted file mode 100644 index 49ddfa4d..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_002.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new(Default::default()))) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(Some(BatchHandle::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.87s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/ent.rs:38:17 - | -38 | Ok(Some(BatchHandle::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-------------------- an argument of type `&mut Client` is missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the argument - | -38 | Ok(Some(BatchHandle::new(Default::default(), /* &mut Client */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_003.log b/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_003.log deleted file mode 100644 index 874f29a8..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_003.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::new())) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(Some(BatchHandle::new())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.79s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/client/ent.rs:38:17 - | -38 | Ok(Some(BatchHandle::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^-- two arguments of type `BatchId` and `&mut Client` are missing - | -note: associated function defined here - --> src/proto/batch/handle.rs:17:19 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^ ------------ ----------------- -help: provide the arguments - | -38 | Ok(Some(BatchHandle::new(/* BatchId */, /* &mut Client */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For more information about this error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_004.log b/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_004.log deleted file mode 100644 index b6acb622..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_004.log +++ /dev/null @@ -1,62 +0,0 @@ - -*** src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::open_batch -> Result>, Error> with Ok(Some(BatchHandle::from_iter([Default::default()]))) -@@ -30,18 +30,17 @@ - Ok(BatchHandle::new(bid, self)) - } - - /// Open an already existing batch of jobs. - /// - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { -- let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; -- Ok(bid.map(|bid| BatchHandle::new(bid, self))) -+ Ok(Some(BatchHandle::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.01s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BatchHandle` in the current scope - --> src/proto/client/ent.rs:38:30 - | -38 | Ok(Some(BatchHandle::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BatchHandle<'_, _>` - | - ::: src/proto/batch/handle.rs:6:1 - | -6 | pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { - | ----------------------------------------------------------------------------- function or associated item `from_iter` not found for this struct - | -note: if you're trying to build a new `BatchHandle<'_, _>`, consider using `BatchHandle::<'a, S>::new` which returns `BatchHandle<'_, S>` - --> src/proto/batch/handle.rs:17:5 - | -17 | pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__ent.rs_line_43_col_9.log b/mutants.out/log/src__proto__client__ent.rs_line_43_col_9.log deleted file mode 100644 index 40702c6a..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_43_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/client/ent.rs:43:9: replace Client::commit_batch -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace Client::commit_batch -> Result<(), Error> with Ok(()) -@@ -35,17 +35,17 @@ - /// This will not error if a batch with the provided `bid` does not exist, - /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { - let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; - Ok(bid.map(|bid| BatchHandle::new(bid, self))) - } - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { -- self.issue(&CommitBatch::from(bid)).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { - single::read_bid(&mut self.0.stream).await - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.78s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.58s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.47s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test community::multi ... ok -test community::fail ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_client ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__ent.rs_line_49_col_9.log b/mutants.out/log/src__proto__client__ent.rs_line_49_col_9.log deleted file mode 100644 index f8262f91..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_49_col_9.log +++ /dev/null @@ -1,141 +0,0 @@ - -*** src/proto/client/ent.rs:49:9: replace ReadToken<'a, S>::read_bid -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace ReadToken<'a, S>::read_bid -> Result with Ok(Default::default()) -@@ -41,17 +41,17 @@ - - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { - self.issue(&CommitBatch::from(bid)).await?.read_ok().await - } - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { -- single::read_bid(&mut self.0.stream).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn maybe_bid(self) -> Result, Error> { - use crate::error; - - let bid_read_res = single::read_bid(&mut self.0.stream).await; - if bid_read_res.is_ok() { - return Ok(Some(bid_read_res.unwrap())); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.02s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.67s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::fail ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_worker ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__ent.rs_line_53_col_9.log b/mutants.out/log/src__proto__client__ent.rs_line_53_col_9.log deleted file mode 100644 index d44c928b..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_53_col_9.log +++ /dev/null @@ -1,150 +0,0 @@ - -*** src/proto/client/ent.rs:53:9: replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(Some(Default::default())) -@@ -45,25 +45,11 @@ - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { - single::read_bid(&mut self.0.stream).await - } - - pub(crate) async fn maybe_bid(self) -> Result, Error> { -- use crate::error; -- -- let bid_read_res = single::read_bid(&mut self.0.stream).await; -- if bid_read_res.is_ok() { -- return Ok(Some(bid_read_res.unwrap())); -- } -- match bid_read_res.unwrap_err() { -- Error::Protocol(error::Protocol::Internal { msg }) => { -- if msg.starts_with("No such batch") { -- return Ok(None); -- } -- return Err(error::Protocol::Internal { msg }.into()); -- } -- another => Err(another), -- } -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.81s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.42s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_worker ... ok -test community::roundtrip ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::hello_client ... ok -test community::fail ... ok -test community::queue ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__ent.rs_line_53_col_9_001.log b/mutants.out/log/src__proto__client__ent.rs_line_53_col_9_001.log deleted file mode 100644 index 20816178..00000000 --- a/mutants.out/log/src__proto__client__ent.rs_line_53_col_9_001.log +++ /dev/null @@ -1,150 +0,0 @@ - -*** src/proto/client/ent.rs:53:9: replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/ent.rs -+++ replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(None) -@@ -45,25 +45,11 @@ - } - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_bid(self) -> Result { - single::read_bid(&mut self.0.stream).await - } - - pub(crate) async fn maybe_bid(self) -> Result, Error> { -- use crate::error; -- -- let bid_read_res = single::read_bid(&mut self.0.stream).await; -- if bid_read_res.is_ok() { -- return Ok(Some(bid_read_res.unwrap())); -- } -- match bid_read_res.unwrap_err() { -- Error::Protocol(error::Protocol::Internal { msg }) => { -- if msg.starts_with("No such batch") { -- return Ok(None); -- } -- return Err(error::Protocol::Internal { msg }.into()); -- } -- another => Err(another), -- } -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.88s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.31s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.26s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::fail ... ok -test community::hello_worker ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_159_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_159_col_9.log deleted file mode 100644 index 6f676295..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_159_col_9.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/client/mod.rs:159:9: replace Client::connect_again -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::connect_again -> Result with Ok(Default::default()) -@@ -151,18 +151,17 @@ - opts: ClientOptions, - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send + Reconnect, - { - pub(crate) async fn connect_again(&mut self) -> Result { -- let s = self.stream.reconnect().await?; -- Client::new(s, self.opts.clone()).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn reconnect(&mut self) -> Result<(), Error> { - self.stream = self.stream.reconnect().await?; - self.init().await - } - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Client: Default` is not satisfied - --> src/proto/client/mod.rs:159:12 - | -159 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Client` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_164_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_164_col_9.log deleted file mode 100644 index 092f4ba0..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_164_col_9.log +++ /dev/null @@ -1,143 +0,0 @@ - -*** src/proto/client/mod.rs:164:9: replace Client::reconnect -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::reconnect -> Result<(), Error> with Ok(()) -@@ -156,18 +156,17 @@ - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send + Reconnect, - { - pub(crate) async fn connect_again(&mut self) -> Result { - let s = self.stream.reconnect().await?; - Client::new(s, self.opts.clone()).await - } - - pub(crate) async fn reconnect(&mut self) -> Result<(), Error> { -- self.stream = self.stream.reconnect().await?; -- self.init().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Drop for Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - fn drop(&mut self) { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.38s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 2.18s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.21s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_worker ... ok -test community::roundtrip ... ok -test community::queue ... ok -test community::multi ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_174_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_174_col_9.log deleted file mode 100644 index ee612d62..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_174_col_9.log +++ /dev/null @@ -1,145 +0,0 @@ - -*** src/proto/client/mod.rs:174:9: replace >::drop with () - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace >::drop with () -@@ -166,23 +166,17 @@ - } - } - - impl Drop for Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - fn drop(&mut self) { -- tokio::task::block_in_place(|| { -- tokio::runtime::Handle::current().block_on(async { -- single::write_command(&mut self.stream, &single::End) -- .await -- .unwrap(); -- }) -- }); -+ () /* ~ changed by cargo-mutants ~ */ - } - } - - pub(crate) enum HeartbeatStatus { - Ok, - Terminate, - Quiet, - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.58s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.12s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:32:5: -assertion `left == right` failed - left: [] - right: [69, 78, 68, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:400:5: -assertion failed: written.ends_with(b"\r\nEND\r\n") - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - hello - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9.log deleted file mode 100644 index 75a1dbc7..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9.log +++ /dev/null @@ -1,78 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------------------------- an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -196 | Ok(Client::new(BufStream::from(Default::default()), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:196:9 - | -196 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^------------------------------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_001.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_001.log deleted file mode 100644 index 692e5247..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_001.log +++ /dev/null @@ -1,56 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:25 - | -196 | Ok(Client::from(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_002.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_002.log deleted file mode 100644 index 7b14e233..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_002.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from_iter([BufStream::from(Default::default())])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:196:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -196 | Ok(Client::from_iter([BufStream::from(Default::default())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_003.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_003.log deleted file mode 100644 index 5b826087..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_003.log +++ /dev/null @@ -1,78 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------------------------ an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -196 | Ok(Client::new(BufStream::new(Default::default()), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:196:9 - | -196 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^-----------------------------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_004.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_004.log deleted file mode 100644 index 58b5b6ca..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_004.log +++ /dev/null @@ -1,94 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new())) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:196:24 - | -196 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -196 | Ok(Client::new(BufStream::new(/* stream */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------ an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -196 | Ok(Client::new(BufStream::new(), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:196:9 - | -196 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^-----------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 3 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 3 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_005.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_005.log deleted file mode 100644 index 783cb94f..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_005.log +++ /dev/null @@ -1,61 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:196:36 - | -196 | Ok(Client::from(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_006.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_006.log deleted file mode 100644 index 55edb453..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_006.log +++ /dev/null @@ -1,78 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:196:35 - | -196 | Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^-------------------------------------------- an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -196 | Ok(Client::new(BufStream::from_iter([Default::default()]), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0599. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_007.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_007.log deleted file mode 100644 index cc6ce9da..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_007.log +++ /dev/null @@ -1,73 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new())) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:196:25 - | -196 | Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -196 | Ok(Client::from(BufStream::new(/* stream */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:25 - | -196 | Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_008.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_008.log deleted file mode 100644 index 5fe08496..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_008.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from_iter([BufStream::new(Default::default())])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:196:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -196 | Ok(Client::from_iter([BufStream::new(Default::default())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_009.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_009.log deleted file mode 100644 index b48ccbea..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_009.log +++ /dev/null @@ -1,78 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::new()) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^-- two arguments are missing - | -note: associated function defined here - --> src/proto/client/mod.rs:263:25 - | -263 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the arguments - | -196 | Ok(Client::new(/* stream */, /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:12 - | -196 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:196:9 - | -196 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^-------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_010.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_010.log deleted file mode 100644 index 0c5c6a04..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_010.log +++ /dev/null @@ -1,74 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:196:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -196 | Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:196:42 - | -196 | Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_011.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_011.log deleted file mode 100644 index e179afbe..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_011.log +++ /dev/null @@ -1,70 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:196:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -196 | Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:196:31 - | -196 | Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -196 | Ok(Client::from_iter([BufStream::new(/* stream */)])) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0599. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_012.log b/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_012.log deleted file mode 100644 index 5eec5a68..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_012.log +++ /dev/null @@ -1,56 +0,0 @@ - -*** src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) -@@ -188,22 +188,17 @@ - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - stream: S, - pwd: Option, - ) -> Result>, Error> { -- let buffered = BufStream::new(stream); -- let opts = ClientOptions { -- password: pwd, -- ..Default::default() -- }; -- Client::new(buffered, opts).await -+ Ok(Client::from(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client> { - /// Create new [`Client`] and connect to a Faktory server. - /// - /// If `url` is not given, will use the standard Faktory environment variables. Specifically, - /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0308]: mismatched types - --> src/proto/client/mod.rs:196:25 - | -196 | Ok(Client::from(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9.log deleted file mode 100644 index 456c4e6f..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new())) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:218:24 - | -218 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -218 | Ok(Client::new(BufStream::new(/* stream */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------ an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -218 | Ok(Client::new(BufStream::new(), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:218:9 - | -218 | Ok(Client::new(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^-----------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 3 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 3 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_001.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_001.log deleted file mode 100644 index 0c43e46f..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_001.log +++ /dev/null @@ -1,67 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:218:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -218 | Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:218:31 - | -218 | Ok(Client::from_iter([BufStream::new()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -218 | Ok(Client::from_iter([BufStream::new(/* stream */)])) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0599. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_002.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_002.log deleted file mode 100644 index ddbcfbe6..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_002.log +++ /dev/null @@ -1,75 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new()) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 0 arguments were supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^-- two arguments are missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the arguments - | -218 | Ok(Client::new(/* stream */, /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:218:9 - | -218 | Ok(Client::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^-------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_003.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_003.log deleted file mode 100644 index 71642b1d..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_003.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:25 - | -218 | Ok(Client::from(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_004.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_004.log deleted file mode 100644 index 62d11c71..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_004.log +++ /dev/null @@ -1,50 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from_iter([BufStream::from(Default::default())])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:218:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -218 | Ok(Client::from_iter([BufStream::from(Default::default())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_005.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_005.log deleted file mode 100644 index 0076a87c..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_005.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:218:36 - | -218 | Ok(Client::from(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_006.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_006.log deleted file mode 100644 index 11c91044..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_006.log +++ /dev/null @@ -1,50 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from_iter([BufStream::new(Default::default())])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:218:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -218 | Ok(Client::from_iter([BufStream::new(Default::default())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib test) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_007.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_007.log deleted file mode 100644 index cb15d6da..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_007.log +++ /dev/null @@ -1,75 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------------------------ an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -218 | Ok(Client::new(BufStream::new(Default::default()), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:218:9 - | -218 | Ok(Client::new(BufStream::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^-----------------------------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_008.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_008.log deleted file mode 100644 index bbd350e0..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_008.log +++ /dev/null @@ -1,75 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^------------------------------------- an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -218 | Ok(Client::new(BufStream::from(Default::default()), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found future - | | - | arguments to this enum variant are incorrect - | -help: the type constructed contains `impl Future>, error::Error>>` due to the type of the argument passed - --> src/proto/client/mod.rs:218:9 - | -218 | Ok(Client::new(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^------------------------------------------------^ - | | - | this argument influences the type of `Ok` -note: tuple variant defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:506:5 - | -506 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), - | ^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_009.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_009.log deleted file mode 100644 index b54f3241..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_009.log +++ /dev/null @@ -1,75 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:218:35 - | -218 | Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -error[E0061]: this function takes 2 arguments but 1 argument was supplied - --> src/proto/client/mod.rs:218:12 - | -218 | Ok(Client::new(BufStream::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^-------------------------------------------- an argument of type `ClientOptions` is missing - | -note: associated function defined here - --> src/proto/client/mod.rs:266:25 - | -266 | pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - | ^^^ --------- ------------------- -help: provide the argument - | -218 | Ok(Client::new(BufStream::from_iter([Default::default()]), /* ClientOptions */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0599. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_010.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_010.log deleted file mode 100644 index 0219bd97..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_010.log +++ /dev/null @@ -1,70 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new())) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/proto/client/mod.rs:218:25 - | -218 | Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^-- an argument is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:12 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^ -help: provide the argument - | -218 | Ok(Client::from(BufStream::new(/* stream */))) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~ - -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:25 - | -218 | Ok(Client::from(BufStream::new())) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -Some errors have detailed explanations: E0061, E0308. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_011.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_011.log deleted file mode 100644 index fb3783db..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_011.log +++ /dev/null @@ -1,71 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `Client` in the current scope - --> src/proto/client/mod.rs:218:20 - | -149 | pub struct Client { - | -------------------------------------------------------------------- function or associated item `from_iter` not found for this struct -... -218 | Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `Client<_>` - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -error[E0599]: no function or associated item named `from_iter` found for struct `BufStream` in the current scope - --> src/proto/client/mod.rs:218:42 - | -218 | Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `BufStream<_>` - | -note: if you're trying to build a new `BufStream<_>` consider using one of the following associated functions: - BufStream::::new - BufStream::::with_capacity - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/io/util/buf_stream.rs:29:5 - | -29 | pub fn new(stream: RW) -> BufStream { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -39 | / pub fn with_capacity( -40 | | reader_capacity: usize, -41 | | writer_capacity: usize, -42 | | stream: RW, -43 | | ) -> BufStream { - | |______________________^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_012.log b/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_012.log deleted file mode 100644 index 0bf19106..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_012.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) -@@ -210,19 +210,17 @@ - /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the - /// server address. If the latter environment variable is not defined, the connection will be - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - pub async fn connect(url: Option<&str>) -> Result>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- Self::connect_with(stream, url.password().map(|p| p.to_string())).await -+ Ok(Client::from(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0308]: mismatched types - --> src/proto/client/mod.rs:218:25 - | -218 | Ok(Client::from(BufStream::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Client>`, found `BufStream<_>` - | | - | arguments to this function are incorrect - | - = note: expected struct `Client>` - found struct `BufStream<_>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_229_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_229_col_9.log deleted file mode 100644 index 1ee7d48f..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_229_col_9.log +++ /dev/null @@ -1,184 +0,0 @@ - -*** src/proto/client/mod.rs:229:9: replace Client::init -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::init -> Result<(), Error> with Ok(()) -@@ -221,53 +221,17 @@ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - async fn init(&mut self) -> Result<(), Error> { -- let hi = single::read_hi(&mut self.stream).await?; -- check_protocols_match(hi.version)?; -- -- // fill in any missing options, and remember them for re-connect -- let mut hello = single::Hello::default(); -- -- // prepare password hash, if one expected by 'Faktory' -- if hi.salt.is_some() { -- if let Some(ref pwd) = self.opts.password { -- hello.set_password(&hi, pwd); -- } else { -- return Err(error::Connect::AuthenticationNeeded.into()); -- } -- } -- -- if self.opts.is_worker { -- // fill in any missing options, and remember them for re-connect -- let hostname = self -- .opts -- .hostname -- .clone() -- .or_else(|| hostname::get().ok()?.into_string().ok()) -- .unwrap_or_else(|| "local".to_string()); -- self.opts.hostname = Some(hostname); -- let pid = self.opts.pid.unwrap_or_else(|| std::process::id() as usize); -- self.opts.pid = Some(pid); -- let wid = self.opts.wid.clone().unwrap_or_else(WorkerId::random); -- self.opts.wid = Some(wid); -- -- hello.hostname = Some(self.opts.hostname.clone().unwrap()); -- hello.wid = Some(self.opts.wid.clone().unwrap()); -- hello.pid = Some(self.opts.pid.unwrap()); -- hello.labels.clone_from(&self.opts.labels); -- } -- -- single::write_command_and_await_ok(&mut self.stream, &hello).await?; -- Ok(()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn new(stream: S, opts: ClientOptions) -> Result, Error> { - let mut c = Client { stream, opts }; - c.init().await?; - Ok(c) - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.42s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 2.01s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... FAILED -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:17:5: -assertion failed: written.starts_with(b"HELLO {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -Serialization(Error("expected value", line: 1, column: 1)) -thread 'dequeue' panicked at tests/consumer.rs:85:9: -internal error: entered unreachable code - ----- dequeue_first_empty stdout ---- -Serialization(Error("expected value", line: 1, column: 1)) -thread 'dequeue_first_empty' panicked at tests/consumer.rs:128:13: -internal error: entered unreachable code - ----- hello_pwd stdout ---- -thread 'hello_pwd' panicked at tests/consumer.rs:46:5: -assertion failed: written.starts_with(b"HELLO {") - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - - -failures: - dequeue - dequeue_first_empty - hello - hello_pwd - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 0 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_23_col_12.log b/mutants.out/log/src__proto__client__mod.rs_line_23_col_12.log deleted file mode 100644 index 4445bd74..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_23_col_12.log +++ /dev/null @@ -1,226 +0,0 @@ - -*** src/proto/client/mod.rs:23:12: replace != with == in check_protocols_match - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace != with == in check_protocols_match -@@ -15,17 +15,17 @@ - use tokio::net::TcpStream as TokioStream; - - mod options; - pub(crate) use options::ClientOptions; - - pub(crate) const EXPECTED_PROTOCOL_VERSION: usize = 2; - - fn check_protocols_match(ver: usize) -> Result<(), Error> { -- if ver != EXPECTED_PROTOCOL_VERSION { -+ if ver == /* ~ changed by cargo-mutants ~ */ EXPECTED_PROTOCOL_VERSION { - return Err(error::Connect::VersionMismatch { - ours: EXPECTED_PROTOCOL_VERSION, - theirs: ver, - } - .into()); - } - Ok(()) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.79s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.32s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.26s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... FAILED -test hello_pwd ... FAILED -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -thread 'well_behaved' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 2 -thread 'well_behaved' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x55bff197e676 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x55bff197e676 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x55bff197e676 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x55bff197e676 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x55bff19a7d50 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x55bff19a7d50 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x55bff197bccf - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x55bff197e454 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x55bff197e454 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x55bff19801c7 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x55bff197fead - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x55bff1817f67 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x55bff1817f67 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x55bff19807e6 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x55bff19807e6 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x55bff1980532 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x55bff197eb76 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x55bff1980284 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x55bff171cca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x55bff171d2a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x55bff17467b4 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x55bff17467b4 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/mock/mod.rs:136:17 - 22: 0x55bff1741f73 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x55bff17b94ef - consumer::well_behaved::{{closure}}::h74d858d81dce02a5 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:214:1 - 24: 0x55bff171e793 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x55bff1795134 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x55bff1794630 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x55bff1794630 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x55bff1794630 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x55bff17c53f4 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x55bff1734d88 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x55bff1777914 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x55bff1734d58 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x55bff179e247 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x55bff17a4cd8 - consumer::well_behaved::h88b846a49b219eb1 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:210:5 - 35: 0x55bff17b9307 - consumer::well_behaved::{{closure}}::hebef571c952f5951 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:152:24 - 36: 0x55bff17396c6 - core::ops::function::FnOnce::call_once::h17044c0a3e747593 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x55bff181db2f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x55bff181db2f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x55bff181c981 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x55bff181c981 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x55bff181c981 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x55bff181c981 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x55bff181c981 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x55bff181c981 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x55bff181c981 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x55bff17e3d66 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x55bff17e3d66 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x55bff17e8da7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x55bff17e8da7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x55bff17e8da7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x55bff17e8da7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x55bff17e8da7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x55bff17e8da7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x55bff17e8da7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x55bff1984d05 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x55bff1984d05 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x55bff1984d05 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x7c9f7ce94ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x7c9f7cf26850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'well_behaved' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_23_col_5.log b/mutants.out/log/src__proto__client__mod.rs_line_23_col_5.log deleted file mode 100644 index 0dc0a275..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_23_col_5.log +++ /dev/null @@ -1,149 +0,0 @@ - -*** src/proto/client/mod.rs:23:5: replace check_protocols_match -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace check_protocols_match -> Result<(), Error> with Ok(()) -@@ -15,24 +15,17 @@ - use tokio::net::TcpStream as TokioStream; - - mod options; - pub(crate) use options::ClientOptions; - - pub(crate) const EXPECTED_PROTOCOL_VERSION: usize = 2; - - fn check_protocols_match(ver: usize) -> Result<(), Error> { -- if ver != EXPECTED_PROTOCOL_VERSION { -- return Err(error::Connect::VersionMismatch { -- ours: EXPECTED_PROTOCOL_VERSION, -- theirs: ver, -- } -- .into()); -- } -- Ok(()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - /// `Client` is used to enqueue new jobs that will in turn be processed by Faktory workers. - /// - /// # Connecting to Faktory - /// - /// To issue jobs, the `Client` must first be connected to the Faktory server. Exactly how you do - /// that depends on your setup. Faktory suggests using the `FAKTORY_PROVIDER` and `FAKTORY_URL` - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.18s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.92s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::multi ... ok -test community::hello_client ... ok -test community::enqueue_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_278_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_278_col_9.log deleted file mode 100644 index a81838c1..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_278_col_9.log +++ /dev/null @@ -1,55 +0,0 @@ - -*** src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::new()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::issue -> Result, Error> with Ok(ReadToken::new()) -@@ -270,18 +270,17 @@ - c.init().await?; - Ok(c) - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { -- single::write_command(&mut self.stream, c).await?; -- Ok(ReadToken(self)) -+ Ok(ReadToken::new()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `new` found for struct `ReadToken` in the current scope - --> src/proto/client/mod.rs:278:23 - | -278 | Ok(ReadToken::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `ReadToken<'_, _>` -... -395 | pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - | --------------------------- function or associated item `new` not found for this struct - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following traits define an item `new`, perhaps you need to implement one of them: - candidate #1: `VariableOutputCore` - candidate #2: `Digest` - candidate #3: `VariableOutput` - candidate #4: `KeyInit` - candidate #5: `KeyIvInit` - candidate #6: `Bit` - candidate #7: `UniformSampler` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_001.log b/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_001.log deleted file mode 100644 index b2c885e7..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_001.log +++ /dev/null @@ -1,55 +0,0 @@ - -*** src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::new(Default::default())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::issue -> Result, Error> with Ok(ReadToken::new(Default::default())) -@@ -270,18 +270,17 @@ - c.init().await?; - Ok(c) - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { -- single::write_command(&mut self.stream, c).await?; -- Ok(ReadToken(self)) -+ Ok(ReadToken::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `new` found for struct `ReadToken` in the current scope - --> src/proto/client/mod.rs:278:23 - | -278 | Ok(ReadToken::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `ReadToken<'_, _>` -... -395 | pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - | --------------------------- function or associated item `new` not found for this struct - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following traits define an item `new`, perhaps you need to implement one of them: - candidate #1: `VariableOutputCore` - candidate #2: `Digest` - candidate #3: `VariableOutput` - candidate #4: `KeyInit` - candidate #5: `KeyIvInit` - candidate #6: `Bit` - candidate #7: `UniformSampler` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_002.log b/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_002.log deleted file mode 100644 index bff65aba..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_002.log +++ /dev/null @@ -1,49 +0,0 @@ - -*** src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::from_iter([Default::default()])) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::issue -> Result, Error> with Ok(ReadToken::from_iter([Default::default()])) -@@ -270,18 +270,17 @@ - c.init().await?; - Ok(c) - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { -- single::write_command(&mut self.stream, c).await?; -- Ok(ReadToken(self)) -+ Ok(ReadToken::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `ReadToken` in the current scope - --> src/proto/client/mod.rs:278:23 - | -278 | Ok(ReadToken::from_iter([Default::default()])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `ReadToken<'_, _>` -... -395 | pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - | --------------------------- function or associated item `from_iter` not found for this struct - | - = help: items from traits can only be used if the trait is implemented and in scope - = note: the following trait defines an item `from_iter`, perhaps you need to implement it: - candidate #1: `FromIterator` - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_003.log b/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_003.log deleted file mode 100644 index e52e9aa7..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_003.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::from(Default::default())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::issue -> Result, Error> with Ok(ReadToken::from(Default::default())) -@@ -270,18 +270,17 @@ - c.init().await?; - Ok(c) - } - - pub(crate) async fn issue( - &mut self, - c: &FC, - ) -> Result, Error> { -- single::write_command(&mut self.stream, c).await?; -- Ok(ReadToken(self)) -+ Ok(ReadToken::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { - self.issue(&single::Fetch::from(queues)) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `ReadToken<'_, S>: Default` is not satisfied - --> src/proto/client/mod.rs:278:28 - | -278 | Ok(ReadToken::from(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ReadToken<'_, S>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_286_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_286_col_9.log deleted file mode 100644 index 5a2ece35..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_286_col_9.log +++ /dev/null @@ -1,64 +0,0 @@ - -*** src/proto/client/mod.rs:286:9: replace Client::fetch -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::fetch -> Result, Error> with Ok(Some(Default::default())) -@@ -278,20 +278,17 @@ - single::write_command(&mut self.stream, c).await?; - Ok(ReadToken(self)) - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { -- self.issue(&single::Fetch::from(queues)) -- .await? -- .read_json() -- .await -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn heartbeat(&mut self) -> Result { - single::write_command( - &mut self.stream, - &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), - ) - .await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Job: Default` is not satisfied - --> src/proto/client/mod.rs:286:17 - | -286 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Job` - | -help: consider annotating `Job` with `#[derive(Default)]` - --> src/proto/single/mod.rs:71:1 - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -error[E0277]: the trait bound `single::Job: Default` is not satisfied - --> src/proto/client/mod.rs:286:17 - | -286 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Job` - | -help: consider annotating `single::Job` with `#[derive(Default)]` - --> src/proto/single/mod.rs:71:1 - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_286_col_9_001.log b/mutants.out/log/src__proto__client__mod.rs_line_286_col_9_001.log deleted file mode 100644 index e969a52c..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_286_col_9_001.log +++ /dev/null @@ -1,149 +0,0 @@ - -*** src/proto/client/mod.rs:286:9: replace Client::fetch -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::fetch -> Result, Error> with Ok(None) -@@ -278,20 +278,17 @@ - single::write_command(&mut self.stream, c).await?; - Ok(ReadToken(self)) - } - - pub(crate) async fn fetch(&mut self, queues: &[Q]) -> Result, Error> - where - Q: AsRef + Sync, - { -- self.issue(&single::Fetch::from(queues)) -- .await? -- .read_json() -- .await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn heartbeat(&mut self) -> Result { - single::write_command( - &mut self.stream, - &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), - ) - .await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.16s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.57s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello ... ok -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "d\":634085,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "\"wid\":\"wid\",\"pid\":634085,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "d\":634085,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_293_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_293_col_9.log deleted file mode 100644 index bf8040b5..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_293_col_9.log +++ /dev/null @@ -1,62 +0,0 @@ - -*** src/proto/client/mod.rs:293:9: replace Client::heartbeat -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::heartbeat -> Result with Ok(Default::default()) -@@ -285,38 +285,17 @@ - { - self.issue(&single::Fetch::from(queues)) - .await? - .read_json() - .await - } - - pub(crate) async fn heartbeat(&mut self) -> Result { -- single::write_command( -- &mut self.stream, -- &single::Heartbeat::new(self.opts.wid.as_ref().unwrap().clone()), -- ) -- .await?; -- -- match single::read_json::<_, serde_json::Value>(&mut self.stream).await? { -- None => Ok(HeartbeatStatus::Ok), -- Some(s) => match s -- .as_object() -- .and_then(|m| m.get("state")) -- .and_then(|s| s.as_str()) -- { -- Some("terminate") => Ok(HeartbeatStatus::Terminate), -- Some("quiet") => Ok(HeartbeatStatus::Quiet), -- _ => Err(error::Protocol::BadType { -- expected: "heartbeat response", -- received: format!("{}", s), -- } -- .into()), -- }, -- } -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - /// Asynchronously enqueue the given job on the Faktory server. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `HeartbeatStatus: Default` is not satisfied - --> src/proto/client/mod.rs:293:12 - | -293 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `HeartbeatStatus` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_326_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_326_col_9.log deleted file mode 100644 index b5b93bf8..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_326_col_9.log +++ /dev/null @@ -1,121 +0,0 @@ - -*** src/proto/client/mod.rs:326:9: replace Client::enqueue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue -> Result<(), Error> with Ok(()) -@@ -318,17 +318,17 @@ - impl Client - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, - { - /// Asynchronously enqueue the given job on the Faktory server. - /// - /// Returns `Ok` if the job was successfully queued by the Faktory server. - pub async fn enqueue(&mut self, job: Job) -> Result<(), Error> { -- self.issue(&Push::from(job)).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - /// Enqueue numerous jobs on the Faktory server. - /// - /// Provided you have numerous jobs to submit, using this method will be more efficient as compared - /// to calling [`enqueue`](Client::enqueue) multiple times. - /// - /// The returned `Ok` result will contain a tuple of enqueued jobs count and an option of a hash map - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.13s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.75s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... FAILED -test hello_pwd ... ok - -failures: - ----- enqueue stdout ---- -thread 'enqueue' panicked at tests/producer.rs:54:5: -assertion failed: written.starts_with(b"PUSH {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - enqueue - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9.log deleted file mode 100644 index 2efee4ce..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::new()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::new()))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::new()))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.11s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.75s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.06s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::hello_worker ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test community::fail ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::multi ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_001.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_001.log deleted file mode 100644 index b3177672..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_001.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.92s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.33s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.19s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::queue ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::hello_worker ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job ... ok -test community::roundtrip ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::fail ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_002.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_002.log deleted file mode 100644 index 7f5a9b83..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_002.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.48s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_worker ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::queue ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_003.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_003.log deleted file mode 100644 index 7a89cbcb..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_003.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.09s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.69s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.16s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_client ... ok -test enterprise::ent_expiring_job ... ok -test community::queue ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::test_jobs_pushed_in_bulk ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_004.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_004.log deleted file mode 100644 index 59a982ca..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_004.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, None)) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, None)) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, None)) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.01s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.57s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.16s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test community::queue ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_client ... ok -test community::enqueue_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_005.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_005.log deleted file mode 100644 index b0cb8d96..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_005.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.18s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.57s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.18s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::multi ... ok -test community::roundtrip ... ok -test community::hello_client ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::queue ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_006.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_006.log deleted file mode 100644 index 25bf8353..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_006.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.17s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.66s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.10s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_created_with_builder ... ok -test community::queue ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_007.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_007.log deleted file mode 100644 index 1bd3f42d..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_007.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), String::new())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), String::new())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::from_iter([(String::new(), String::new())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.17s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.90s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.34s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_created_with_builder ... ok -test community::queue ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_worker ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::fail ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_008.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_008.log deleted file mode 100644 index 6ded3d91..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_008.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, None)) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, None)) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, None)) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.32s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 2.12s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::multi ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_009.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_009.log deleted file mode 100644 index ef039a21..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_009.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.87s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.27s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_success ... ok -test community::hello_worker ... ok -test community::multi ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_client ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test community::fail ... ok -test community::test_jobs_created_with_builder ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_010.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_010.log deleted file mode 100644 index 1c27db55..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_010.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::new()))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::new()))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((1, Some(HashMap::new()))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.62s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test community::multi ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::enqueue_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_011.log b/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_011.log deleted file mode 100644 index 355c216f..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_011.log +++ /dev/null @@ -1,153 +0,0 @@ - -*** src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), String::new())])))) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), String::new())])))) -@@ -340,28 +340,17 @@ - pub async fn enqueue_many( - &mut self, - jobs: J, - ) -> Result<(usize, Option>), Error> - where - J: IntoIterator, - J::IntoIter: ExactSizeIterator, - { -- let jobs = jobs.into_iter(); -- let jobs_count = jobs.len(); -- let errors: HashMap = self -- .issue(&PushBulk::from(jobs.collect::>())) -- .await? -- .read_json() -- .await? -- .expect("Faktory server sends {} literal when there are no errors"); -- if errors.is_empty() { -- return Ok((jobs_count, None)); -- } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((0, Some(HashMap::from_iter([(String::new(), String::new())])))) /* ~ changed by cargo-mutants ~ */ - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.56s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.13s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::fail ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::enqueue_job ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_359_col_24.log b/mutants.out/log/src__proto__client__mod.rs_line_359_col_24.log deleted file mode 100644 index 7ee1a3d3..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_359_col_24.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/client/mod.rs:359:24: replace - with + in Client::enqueue_many - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace - with + in Client::enqueue_many -@@ -351,17 +351,17 @@ - .issue(&PushBulk::from(jobs.collect::>())) - .await? - .read_json() - .await? - .expect("Faktory server sends {} literal when there are no errors"); - if errors.is_empty() { - return Ok((jobs_count, None)); - } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((jobs_count + /* ~ changed by cargo-mutants ~ */ errors.len(), Some(errors))) - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.09s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.46s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::hello_worker ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_client ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test community::fail ... ok -test community::queue ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::enqueue_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_359_col_24_001.log b/mutants.out/log/src__proto__client__mod.rs_line_359_col_24_001.log deleted file mode 100644 index ad246ddf..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_359_col_24_001.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/client/mod.rs:359:24: replace - with / in Client::enqueue_many - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace - with / in Client::enqueue_many -@@ -351,17 +351,17 @@ - .issue(&PushBulk::from(jobs.collect::>())) - .await? - .read_json() - .await? - .expect("Faktory server sends {} literal when there are no errors"); - if errors.is_empty() { - return Ok((jobs_count, None)); - } -- Ok((jobs_count - errors.len(), Some(errors))) -+ Ok((jobs_count / /* ~ changed by cargo-mutants ~ */ errors.len(), Some(errors))) - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { - self.issue(&Info) - .await? - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.82s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.67s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.13s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_success ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::queue ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_worker ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::fail ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_366_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_366_col_9.log deleted file mode 100644 index 4d8289fa..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_366_col_9.log +++ /dev/null @@ -1,146 +0,0 @@ - -*** src/proto/client/mod.rs:366:9: replace Client::info -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::info -> Result with Ok(Default::default()) -@@ -358,21 +358,17 @@ - } - Ok((jobs_count - errors.len(), Some(errors))) - } - - /// Retrieve information about the running server. - /// - /// The returned value is the result of running the `INFO` command on the server. - pub async fn info(&mut self) -> Result { -- self.issue(&Info) -- .await? -- .read_json() -- .await -- .map(|v| v.expect("info command cannot give empty response")) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - /// Pause the given queues. - pub async fn queue_pause(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { - self.issue(&QueueControl::new(QueueAction::Pause, queues)) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.01s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.63s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test community::fail ... ok -test community::hello_worker ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_created_with_builder ... ok -test community::queue ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_client ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_378_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_378_col_9.log deleted file mode 100644 index 1f39f140..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_378_col_9.log +++ /dev/null @@ -1,124 +0,0 @@ - -*** src/proto/client/mod.rs:378:9: replace Client::queue_pause -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::queue_pause -> Result<(), Error> with Ok(()) -@@ -370,20 +370,17 @@ - .map(|v| v.expect("info command cannot give empty response")) - } - - /// Pause the given queues. - pub async fn queue_pause(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { -- self.issue(&QueueControl::new(QueueAction::Pause, queues)) -- .await? -- .read_ok() -- .await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - /// Resume the given queues. - pub async fn queue_resume(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { - self.issue(&QueueControl::new(QueueAction::Resume, queues)) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.14s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 2.28s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.05s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... FAILED -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -failures: - ----- queue_control stdout ---- -thread 'queue_control' panicked at tests/producer.rs:100:5: -assertion failed: written == b"QUEUE PAUSE test test2\r\nQUEUE RESUME test3 test4\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - queue_control - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_389_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_389_col_9.log deleted file mode 100644 index 0d6a8608..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_389_col_9.log +++ /dev/null @@ -1,124 +0,0 @@ - -*** src/proto/client/mod.rs:389:9: replace Client::queue_resume -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace Client::queue_resume -> Result<(), Error> with Ok(()) -@@ -381,20 +381,17 @@ - .await - } - - /// Resume the given queues. - pub async fn queue_resume(&mut self, queues: &[Q]) -> Result<(), Error> - where - Q: AsRef + Sync, - { -- self.issue(&QueueControl::new(QueueAction::Resume, queues)) -- .await? -- .read_ok() -- .await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send; - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.06s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.51s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... FAILED -test enqueue ... ok -test hello_pwd ... ok - -failures: - ----- queue_control stdout ---- -thread 'queue_control' panicked at tests/producer.rs:100:5: -assertion failed: written == b"QUEUE PAUSE test test2\r\nQUEUE RESUME test3 test4\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - queue_control - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_402_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_402_col_9.log deleted file mode 100644 index 49a6e7cd..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_402_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/client/mod.rs:402:9: replace ReadToken<'a, S>::read_ok -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace ReadToken<'a, S>::read_ok -> Result<(), Error> with Ok(()) -@@ -394,17 +394,17 @@ - } - - pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) - where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send; - - impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { - pub(crate) async fn read_ok(self) -> Result<(), Error> { -- single::read_ok(&mut self.0.stream).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) async fn read_json(self) -> Result, Error> - where - T: serde::de::DeserializeOwned, - { - single::read_json(&mut self.0.stream).await - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.45s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::multi ... ok -test community::enqueue_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_created_with_builder ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test community::queue ... ok -test community::hello_client ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__client__mod.rs_line_409_col_9.log b/mutants.out/log/src__proto__client__mod.rs_line_409_col_9.log deleted file mode 100644 index e1546720..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_409_col_9.log +++ /dev/null @@ -1,140 +0,0 @@ - -*** src/proto/client/mod.rs:409:9: replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(None) -@@ -401,11 +401,11 @@ - pub(crate) async fn read_ok(self) -> Result<(), Error> { - single::read_ok(&mut self.0.stream).await - } - - pub(crate) async fn read_json(self) -> Result, Error> - where - T: serde::de::DeserializeOwned, - { -- single::read_json(&mut self.0.stream).await -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.97s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.46s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "ault\r\nFETCH default\r\nFETCH default\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "ault\r\nFETCH default\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "ault\r\nFETCH default\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.19s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__client__mod.rs_line_409_col_9_001.log b/mutants.out/log/src__proto__client__mod.rs_line_409_col_9_001.log deleted file mode 100644 index e110950b..00000000 --- a/mutants.out/log/src__proto__client__mod.rs_line_409_col_9_001.log +++ /dev/null @@ -1,40 +0,0 @@ - -*** src/proto/client/mod.rs:409:9: replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/client/mod.rs -+++ replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(Some(Default::default())) -@@ -401,11 +401,11 @@ - pub(crate) async fn read_ok(self) -> Result<(), Error> { - single::read_ok(&mut self.0.stream).await - } - - pub(crate) async fn read_json(self) -> Result, Error> - where - T: serde::de::DeserializeOwned, - { -- single::read_json(&mut self.0.stream).await -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `T: Default` is not satisfied - --> src/proto/client/mod.rs:409:17 - | -409 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `T` - | -help: consider further restricting this bound - | -407 | T: serde::de::DeserializeOwned + std::default::Default, - | +++++++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__mod.rs_line_39_col_9.log b/mutants.out/log/src__proto__mod.rs_line_39_col_9.log deleted file mode 100644 index 906a9ab5..00000000 --- a/mutants.out/log/src__proto__mod.rs_line_39_col_9.log +++ /dev/null @@ -1,42 +0,0 @@ - -*** src/proto/mod.rs:39:9: replace ::reconnect -> io::Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/mod.rs -+++ replace ::reconnect -> io::Result with Ok(Default::default()) -@@ -31,18 +31,17 @@ - pub trait Reconnect: Sized { - /// Re-establish the stream. - async fn reconnect(&mut self) -> io::Result; - } - - #[async_trait::async_trait] - impl Reconnect for TokioStream { - async fn reconnect(&mut self) -> io::Result { -- let addr = &self.peer_addr().expect("socket address"); -- TokioStream::connect(addr).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - #[async_trait::async_trait] - impl Reconnect for BufStream - where - S: AsyncRead + AsyncWrite + Reconnect + Send + Sync, - { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `tokio::net::TcpStream: Default` is not satisfied - --> src/proto/mod.rs:39:12 - | -39 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tokio::net::TcpStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__mod.rs_line_50_col_9.log b/mutants.out/log/src__proto__mod.rs_line_50_col_9.log deleted file mode 100644 index cbcda371..00000000 --- a/mutants.out/log/src__proto__mod.rs_line_50_col_9.log +++ /dev/null @@ -1,36 +0,0 @@ - -*** src/proto/mod.rs:50:9: replace >::reconnect -> io::Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/mod.rs -+++ replace >::reconnect -> io::Result with Ok(Default::default()) -@@ -42,12 +42,11 @@ - } - - #[async_trait::async_trait] - impl Reconnect for BufStream - where - S: AsyncRead + AsyncWrite + Reconnect + Send + Sync, - { - async fn reconnect(&mut self) -> io::Result { -- let stream = self.get_mut().reconnect().await?; -- Ok(Self::new(stream)) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `BufStream: Default` is not satisfied - --> src/proto/mod.rs:50:12 - | -50 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `BufStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_109_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_109_col_9.log deleted file mode 100644 index 6e810324..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_109_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/cmd.rs:109:9: replace Fail::generic -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace Fail::generic -> Self with Default::default() -@@ -101,17 +101,17 @@ - backtrace: Vec::new(), - } - } - - // Used for all kind of errors not related to domain logic, e.g. missing handler for this type of job (i.e. - // the worker consumed a job from a specified queue, but has no tool to process it). - // Note that "unknown" is the error type used by the Go library in such cases too. - pub(crate) fn generic>(job_id: JobId, message: S) -> Self { -- Fail::new(job_id, "unknown", message) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn set_backtrace(&mut self, lines: Vec) { - self.backtrace = lines; - } - - // For any application errors (all kind of errors that could happen in userland when handling the job) - // we want to send backtrace (split into lines) to the Faktory server so that whoever is interested in - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `cmd::Fail: Default` is not satisfied - --> src/proto/single/cmd.rs:109:9 - | -109 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `cmd::Fail` - | -help: consider annotating `cmd::Fail` with `#[derive(Default)]` - | -85 + #[derive(Default)] -86 | pub(crate) struct Fail { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_113_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_113_col_9.log deleted file mode 100644 index 7171534c..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_113_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/cmd.rs:113:9: replace Fail::set_backtrace with () - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace Fail::set_backtrace with () -@@ -105,17 +105,17 @@ - // Used for all kind of errors not related to domain logic, e.g. missing handler for this type of job (i.e. - // the worker consumed a job from a specified queue, but has no tool to process it). - // Note that "unknown" is the error type used by the Go library in such cases too. - pub(crate) fn generic>(job_id: JobId, message: S) -> Self { - Fail::new(job_id, "unknown", message) - } - - pub(crate) fn set_backtrace(&mut self, lines: Vec) { -- self.backtrace = lines; -+ () /* ~ changed by cargo-mutants ~ */ - } - - // For any application errors (all kind of errors that could happen in userland when handling the job) - // we want to send backtrace (split into lines) to the Faktory server so that whoever is interested in - // the job result could follow the trace (for debugging essentially). - pub(crate) fn generic_with_backtrace(jid: JobId, e: E) -> Self - where - E: StdError, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.85s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.50s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.19s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::fail ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_client ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test community::enqueue_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_expiring_job ... ok -test community::queue ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_123_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_123_col_9.log deleted file mode 100644 index 02a47d5e..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_123_col_9.log +++ /dev/null @@ -1,55 +0,0 @@ - -*** src/proto/single/cmd.rs:123:9: replace Fail::generic_with_backtrace -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace Fail::generic_with_backtrace -> Self with Default::default() -@@ -115,25 +115,17 @@ - - // For any application errors (all kind of errors that could happen in userland when handling the job) - // we want to send backtrace (split into lines) to the Faktory server so that whoever is interested in - // the job result could follow the trace (for debugging essentially). - pub(crate) fn generic_with_backtrace(jid: JobId, e: E) -> Self - where - E: StdError, - { -- let mut f = Fail::generic(jid, format!("{}", e)); -- let mut root = e.source(); -- let mut lines = Vec::new(); -- while let Some(r) = root.take() { -- lines.push(format!("{}", r)); -- root = r.source(); -- } -- f.set_backtrace(lines); -- f -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - self_to_cmd!(Fail, "FAIL"); - - // ---------------------- END -------------------- - - pub(crate) struct End; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `cmd::Fail: Default` is not satisfied - --> src/proto/single/cmd.rs:123:9 - | -123 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `cmd::Fail` - | -help: consider annotating `cmd::Fail` with `#[derive(Default)]` - | -85 + #[derive(Default)] -86 | pub(crate) struct Fail { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_144_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_144_col_9.log deleted file mode 100644 index 9d7343c5..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_144_col_9.log +++ /dev/null @@ -1,139 +0,0 @@ - -*** src/proto/single/cmd.rs:144:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -136,17 +136,17 @@ - - // ---------------------- END -------------------- - - pub(crate) struct End; - - #[async_trait::async_trait] - impl FaktoryCommand for End { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- Ok(w.write_all(b"END\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // --------------------- FETCH -------------------- - - pub(crate) struct Fetch<'a, S> - where - S: AsRef, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.86s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.26s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:32:5: -assertion `left == right` failed - left: [] - right: [69, 78, 68, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:400:5: -assertion failed: written.ends_with(b"\r\nEND\r\n") - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - hello - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_163_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_163_col_9.log deleted file mode 100644 index 6aa13c03..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_163_col_9.log +++ /dev/null @@ -1,151 +0,0 @@ - -*** src/proto/single/cmd.rs:163:9: replace >::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace >::issue -> Result<(), Error> with Ok(()) -@@ -155,19 +155,17 @@ - } - - #[async_trait::async_trait] - impl<'a, Q> FaktoryCommand for Fetch<'a, Q> - where - Q: AsRef + Sync, - { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- w.write_all(b"FETCH").await?; -- write_queues(w, self.queues).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl<'a, S> From<&'a [S]> for Fetch<'a, S> - where - S: AsRef + 'a, - { - fn from(queues: &'a [S]) -> Self { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.06s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.46s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.51s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- terminate stdout ---- -{"jid":"forever","errtype":"unknown","message":"terminated"} -thread 'terminate' panicked at tests/consumer.rs:420:5: -assertion `left == right` failed - left: "[\"rust\"],\"v\":2}\r\n" - right: "\r\nFETCH default\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "[\"rust\"],\"v\":2}\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "[\"rust\"],\"v\":2}\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "48654,\"labels\":[\"rust\"],\"v\":2}\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_174_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_174_col_9.log deleted file mode 100644 index a4fdbad7..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_174_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/cmd.rs:174:9: replace >::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace >::from -> Self with Default::default() -@@ -166,17 +166,17 @@ - } - } - - impl<'a, S> From<&'a [S]> for Fetch<'a, S> - where - S: AsRef + 'a, - { - fn from(queues: &'a [S]) -> Self { -- Fetch { queues } -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - // --------------------- HELLO -------------------- - - #[derive(Serialize)] - pub(crate) struct Hello { - #[serde(skip_serializing_if = "Option::is_none")] - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `cmd::Fetch<'_, S>: Default` is not satisfied - --> src/proto/single/cmd.rs:174:9 - | -174 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `cmd::Fetch<'_, S>` - | -help: consider annotating `cmd::Fetch<'_, S>` with `#[derive(Default)]` - | -150 + #[derive(Default)] -151 | pub(crate) struct Fetch<'a, S> - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_215_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_215_col_9.log deleted file mode 100644 index ee858603..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_215_col_9.log +++ /dev/null @@ -1,121 +0,0 @@ - -*** src/proto/single/cmd.rs:215:9: replace Hello::set_password with () - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace Hello::set_password with () -@@ -207,25 +207,17 @@ - password_hash: None, - version: crate::proto::EXPECTED_PROTOCOL_VERSION, - } - } - } - - impl Hello { - pub fn set_password(&mut self, hi: &super::resp::Hi, password: &str) { -- use sha2::{Digest, Sha256}; -- let mut hasher = Sha256::default(); -- hasher.update(password.as_bytes()); -- hasher.update(hi.salt.as_ref().unwrap().as_bytes()); -- let mut hash = hasher.finalize(); -- for _ in 1..hi.iterations.unwrap_or(1) { -- hash = Sha256::digest(&hash[..]); -- } -- self.password_hash = Some(format!("{:x}", hash)); -+ () /* ~ changed by cargo-mutants ~ */ - } - } - - self_to_cmd!(Hello, "HELLO"); - - // --------------------- PUSH -------------------- - - pub(crate) struct Push(Job); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.90s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 2.64s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.16s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test hello_pwd ... FAILED -test dequeue ... ok -test dequeue_first_empty ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -failures: - ----- hello_pwd stdout ---- -thread 'hello_pwd' panicked at tests/consumer.rs:49:5: -assertion `left == right` failed - left: None - right: Some("6d877f8e5544b1f2598768f817413ab8a357afffa924dedae99eb91472d4ec30") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - hello_pwd - -test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_237_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_237_col_9.log deleted file mode 100644 index 54bcf740..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_237_col_9.log +++ /dev/null @@ -1,61 +0,0 @@ - -*** src/proto/single/cmd.rs:237:9: replace ::deref -> &Self::Target with &Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::deref -> &Self::Target with &Default::default() -@@ -229,17 +229,17 @@ - // --------------------- PUSH -------------------- - - pub(crate) struct Push(Job); - - use std::ops::Deref; - impl Deref for Push { - type Target = Job; - fn deref(&self) -> &Self::Target { -- &self.0 -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl From for Push { - fn from(j: Job) -> Self { - Push(j) - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Job: Default` is not satisfied - --> src/proto/single/cmd.rs:237:10 - | -237 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Job` - | -help: consider annotating `Job` with `#[derive(Default)]` - --> src/proto/single/mod.rs:71:1 - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::Job: Default` is not satisfied - --> src/proto/single/cmd.rs:237:10 - | -237 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Job` - | -help: consider annotating `single::Job` with `#[derive(Default)]` - --> src/proto/single/mod.rs:71:1 - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_243_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_243_col_9.log deleted file mode 100644 index e234b05f..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_243_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/single/cmd.rs:243:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::from -> Self with Default::default() -@@ -235,17 +235,17 @@ - type Target = Job; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - - impl From for Push { - fn from(j: Job) -> Self { -- Push(j) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[async_trait::async_trait] - impl FaktoryCommand for Push { - async fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"PUSH ").await?; - let r = serde_json::to_vec(&**self).map_err(Error::Serialization)?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `cmd::Push: Default` is not satisfied - --> src/proto/single/cmd.rs:243:9 - | -243 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `cmd::Push` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_250_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_250_col_9.log deleted file mode 100644 index 41935838..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_250_col_9.log +++ /dev/null @@ -1,124 +0,0 @@ - -*** src/proto/single/cmd.rs:250:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -242,20 +242,17 @@ - fn from(j: Job) -> Self { - Push(j) - } - } - - #[async_trait::async_trait] - impl FaktoryCommand for Push { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- w.write_all(b"PUSH ").await?; -- let r = serde_json::to_vec(&**self).map_err(Error::Serialization)?; -- w.write_all(&r).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // ---------------------- PUSHB ------------------- - - pub(crate) struct PushBulk(Vec); - - impl From> for PushBulk { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.95s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.78s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... FAILED -test hello_pwd ... ok - -failures: - ----- enqueue stdout ---- -thread 'enqueue' panicked at tests/producer.rs:54:5: -assertion failed: written.starts_with(b"PUSH {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - enqueue - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_263_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_263_col_9.log deleted file mode 100644 index 68e63e8e..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_263_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/cmd.rs:263:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::from -> Self with Default::default() -@@ -255,17 +255,17 @@ - } - - // ---------------------- PUSHB ------------------- - - pub(crate) struct PushBulk(Vec); - - impl From> for PushBulk { - fn from(jobs: Vec) -> Self { -- PushBulk(jobs) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[async_trait::async_trait] - impl FaktoryCommand for PushBulk { - async fn issue(&self, w: &mut W) -> Result<(), Error> { - w.write_all(b"PUSHB ").await?; - let r = serde_json::to_vec(&self.0).map_err(Error::Serialization)?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `cmd::PushBulk: Default` is not satisfied - --> src/proto/single/cmd.rs:263:9 - | -263 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `cmd::PushBulk` - | -help: consider annotating `cmd::PushBulk` with `#[derive(Default)]` - | -259 + #[derive(Default)] -260 | pub(crate) struct PushBulk(Vec); - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_270_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_270_col_9.log deleted file mode 100644 index 747d5860..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_270_col_9.log +++ /dev/null @@ -1,145 +0,0 @@ - -*** src/proto/single/cmd.rs:270:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -262,20 +262,17 @@ - fn from(jobs: Vec) -> Self { - PushBulk(jobs) - } - } - - #[async_trait::async_trait] - impl FaktoryCommand for PushBulk { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- w.write_all(b"PUSHB ").await?; -- let r = serde_json::to_vec(&self.0).map_err(Error::Serialization)?; -- w.write_all(&r).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // ---------------------- QUEUE ------------------- - - pub(crate) enum QueueAction { - Pause, - Resume, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.02s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.33s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_298_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_298_col_9.log deleted file mode 100644 index 324167a0..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_298_col_9.log +++ /dev/null @@ -1,126 +0,0 @@ - -*** src/proto/single/cmd.rs:298:9: replace >::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace >::issue -> Result<(), Error> with Ok(()) -@@ -290,22 +290,16 @@ - } - - #[async_trait::async_trait] - impl FaktoryCommand for QueueControl<'_, Q> - where - Q: AsRef + Sync, - { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- let command = match self.action { -- QueueAction::Pause => b"QUEUE PAUSE".as_ref(), -- QueueAction::Resume => b"QUEUE RESUME".as_ref(), -- }; -- w.write_all(command).await?; -- write_queues(w, self.queues).await?; -- Ok(w.write_all(b"\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - impl<'a, S: AsRef> QueueControl<'a, S> { - pub fn new(action: QueueAction, queues: &'a [S]) -> Self { - Self { action, queues } - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.82s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.31s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.28s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test hello ... ok -test queue_control ... FAILED -test hello_pwd ... ok - -failures: - ----- queue_control stdout ---- -thread 'queue_control' panicked at tests/producer.rs:100:5: -assertion failed: written == b"QUEUE PAUSE test test2\r\nQUEUE RESUME test3 test4\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - queue_control - -test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - -error: test failed, to rerun pass `--test producer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_33_col_5.log b/mutants.out/log/src__proto__single__cmd.rs_line_33_col_5.log deleted file mode 100644 index e1ed341d..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_33_col_5.log +++ /dev/null @@ -1,154 +0,0 @@ - -*** src/proto/single/cmd.rs:33:5: replace write_queues -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace write_queues -> Result<(), Error> with Ok(()) -@@ -25,22 +25,17 @@ - - /// Write queues as part of a command. They are written with a leading space - /// followed by space separated queue names. - async fn write_queues(w: &mut W, queues: &[S]) -> Result<(), Error> - where - W: AsyncWriteExt + Unpin + Send, - S: AsRef, - { -- for q in queues { -- w.write_all(b" ").await?; -- w.write_all(q.as_ref().as_bytes()).await?; -- } -- -- Ok(()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - // -------------------- INFO ---------------------- - - pub(crate) struct Info; - - #[async_trait::async_trait] - impl FaktoryCommand for Info { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.53s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.18s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 13, 10, 70, 69, 84, 67, 72, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -{"jid":"forever","errtype":"unknown","message":"terminated"} -thread 'terminate' panicked at tests/consumer.rs:420:5: -assertion `left == right` failed - left: "],\"v\":2}\r\nFETCH\r\n" - right: "\r\nFETCH default\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "],\"v\":2}\r\nFETCH\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: ":[\"rust\"],\"v\":2}\r\nFETCH\r\nFETCH\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "],\"v\":2}\r\nFETCH\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__cmd.rs_line_48_col_9.log b/mutants.out/log/src__proto__single__cmd.rs_line_48_col_9.log deleted file mode 100644 index 175a0812..00000000 --- a/mutants.out/log/src__proto__single__cmd.rs_line_48_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/cmd.rs:48:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -40,17 +40,17 @@ - - // -------------------- INFO ---------------------- - - pub(crate) struct Info; - - #[async_trait::async_trait] - impl FaktoryCommand for Info { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- Ok(w.write_all(b"INFO\r\n").await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // -------------------- ACK ---------------------- - - #[derive(Serialize)] - pub(crate) struct Ack { - jid: JobId, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.01s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.43s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::fail ... ok -test community::enqueue_job ... ok -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::hello_client ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_created_with_builder ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__ent__cmd.rs_line_15_col_9.log b/mutants.out/log/src__proto__single__ent__cmd.rs_line_15_col_9.log deleted file mode 100644 index 648cc9ad..00000000 --- a/mutants.out/log/src__proto__single__ent__cmd.rs_line_15_col_9.log +++ /dev/null @@ -1,147 +0,0 @@ - -*** src/proto/single/ent/cmd.rs:15:9: replace ::issue -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/ent/cmd.rs -+++ replace ::issue -> Result<(), Error> with Ok(()) -@@ -7,23 +7,11 @@ - pub enum Track { - Set(ProgressUpdate), - Get(JobId), - } - - #[async_trait::async_trait] - impl FaktoryCommand for Track { - async fn issue(&self, w: &mut W) -> Result<(), Error> { -- match self { -- Self::Set(upd) => { -- w.write_all(b"TRACK SET ").await?; -- let r = serde_json::to_vec(upd).map_err(Error::Serialization)?; -- w.write_all(&r).await?; -- Ok(w.write_all(b"\r\n").await?) -- } -- Self::Get(jid) => { -- w.write_all(b"TRACK GET ").await?; -- w.write_all(jid.as_bytes()).await?; -- Ok(w.write_all(b"\r\n").await?) -- } -- } -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.28s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.19s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test community::queue ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_worker ... ok -test community::fail ... ok -test enterprise::ent_expiring_job ... ok -test community::roundtrip ... ok -test community::hello_client ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_until_start ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__ent__mod.rs_line_25_col_9.log b/mutants.out/log/src__proto__single__ent__mod.rs_line_25_col_9.log deleted file mode 100644 index dd331b39..00000000 --- a/mutants.out/log/src__proto__single__ent__mod.rs_line_25_col_9.log +++ /dev/null @@ -1,68 +0,0 @@ - -*** src/proto/single/ent/mod.rs:25:9: replace JobBuilder::expires_at -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::expires_at -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -17,20 +17,17 @@ - /// # use faktory::JobBuilder; - /// # use chrono::{Duration, Utc}; - /// let _job = JobBuilder::new("order") - /// .args(vec!["ISBN-14:9781718501850"]) - /// .expires_at(Utc::now() + Duration::hours(0)) - /// .build(); - /// ``` - pub fn expires_at(&mut self, dt: DateTime) -> &mut Self { -- self.add_to_custom_data( -- "expires_at", -- dt.to_rfc3339_opts(chrono::SecondsFormat::Nanos, true), -- ) -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// In what period of time from now (UTC) the Faktory should expire this job. - /// - /// Under the hood, the method will call `Utc::now` and add the provided `ttl` duration. - /// You can use this setter when you have a duration rather than some exact date and time, - /// expected by [`expires_at`](JobBuilder::expires_at) setter. - /// Example usage: - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.39s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:25:28 - | -25 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:25:28 - | -25 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36.log b/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36.log deleted file mode 100644 index af149fb0..00000000 --- a/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/ent/mod.rs:46:36: replace + with - in JobBuilder::expires_in - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace + with - in JobBuilder::expires_in -@@ -38,17 +38,17 @@ - /// # use faktory::JobBuilder; - /// # use chrono::Duration; - /// let _job = JobBuilder::new("order") - /// .args(vec!["ISBN-14:9781718501850"]) - /// .expires_in(Duration::weeks(0)) - /// .build(); - /// ``` - pub fn expires_in(&mut self, ttl: chrono::Duration) -> &mut Self { -- self.expires_at(Utc::now() + ttl) -+ self.expires_at(Utc::now() - /* ~ changed by cargo-mutants ~ */ ttl) - } - - /// How long the Faktory will not accept duplicates of this job. - /// - /// The job will be considered unique for the kind-args-queue combination. The uniqueness is best-effort, - /// rather than a guarantee. Check out the Enterprise Faktory [docs](https://github.com/contribsys/faktory/wiki/Ent-Unique-Jobs) - /// for details on how scheduling, retries, and other features live together with `unique_for`. - /// - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.82s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.43s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.26s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job ... ok -test community::fail ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok -test community::multi ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log b/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log deleted file mode 100644 index 84863bc6..00000000 --- a/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log +++ /dev/null @@ -1,57 +0,0 @@ - -*** src/proto/single/ent/mod.rs:46:36: replace + with * in JobBuilder::expires_in - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace + with * in JobBuilder::expires_in -@@ -38,17 +38,17 @@ - /// # use faktory::JobBuilder; - /// # use chrono::Duration; - /// let _job = JobBuilder::new("order") - /// .args(vec!["ISBN-14:9781718501850"]) - /// .expires_in(Duration::weeks(0)) - /// .build(); - /// ``` - pub fn expires_in(&mut self, ttl: chrono::Duration) -> &mut Self { -- self.expires_at(Utc::now() + ttl) -+ self.expires_at(Utc::now() * /* ~ changed by cargo-mutants ~ */ ttl) - } - - /// How long the Faktory will not accept duplicates of this job. - /// - /// The job will be considered unique for the kind-args-queue combination. The uniqueness is best-effort, - /// rather than a guarantee. Check out the Enterprise Faktory [docs](https://github.com/contribsys/faktory/wiki/Ent-Unique-Jobs) - /// for details on how scheduling, retries, and other features live together with `unique_for`. - /// - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.86s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0369]: cannot multiply `DateTime` by `TimeDelta` - --> src/proto/single/ent/mod.rs:46:36 - | -46 | self.expires_at(Utc::now() * /* ~ changed by cargo-mutants ~ */ ttl) - | ---------- ^ --- TimeDelta - | | - | DateTime - -For more information about this error, try `rustc --explain E0369`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0369]: cannot multiply `DateTime` by `TimeDelta` - --> src/proto/single/ent/mod.rs:46:36 - | -46 | self.expires_at(Utc::now() * /* ~ changed by cargo-mutants ~ */ ttl) - | ---------- ^ --- TimeDelta - | | - | DateTime - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_9.log b/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_9.log deleted file mode 100644 index a18e5a8e..00000000 --- a/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_9.log +++ /dev/null @@ -1,64 +0,0 @@ - -*** src/proto/single/ent/mod.rs:46:9: replace JobBuilder::expires_in -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::expires_in -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -38,17 +38,17 @@ - /// # use faktory::JobBuilder; - /// # use chrono::Duration; - /// let _job = JobBuilder::new("order") - /// .args(vec!["ISBN-14:9781718501850"]) - /// .expires_in(Duration::weeks(0)) - /// .build(); - /// ``` - pub fn expires_in(&mut self, ttl: chrono::Duration) -> &mut Self { -- self.expires_at(Utc::now() + ttl) -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// How long the Faktory will not accept duplicates of this job. - /// - /// The job will be considered unique for the kind-args-queue combination. The uniqueness is best-effort, - /// rather than a guarantee. Check out the Enterprise Faktory [docs](https://github.com/contribsys/faktory/wiki/Ent-Unique-Jobs) - /// for details on how scheduling, retries, and other features live together with `unique_for`. - /// - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:46:28 - | -46 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:46:28 - | -46 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__mod.rs_line_60_col_9.log b/mutants.out/log/src__proto__single__ent__mod.rs_line_60_col_9.log deleted file mode 100644 index df7153ad..00000000 --- a/mutants.out/log/src__proto__single__ent__mod.rs_line_60_col_9.log +++ /dev/null @@ -1,65 +0,0 @@ - -*** src/proto/single/ent/mod.rs:60:9: replace JobBuilder::unique_for -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::unique_for -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -52,17 +52,17 @@ - /// rather than a guarantee. Check out the Enterprise Faktory [docs](https://github.com/contribsys/faktory/wiki/Ent-Unique-Jobs) - /// for details on how scheduling, retries, and other features live together with `unique_for`. - /// - /// If you've already created and pushed a unique job (job "A") to the Faktory server and now have got another one - /// of same kind, with the same args and destined for the same queue (job "B") and you would like - for some reason - to - /// bypass the unique constraint, simply leave `unique_for` field on the job's custom hash empty, i.e. do not use this setter. - /// In this case, the Faktory server will accept job "B", though technically this job "B" is a duplicate. - pub fn unique_for(&mut self, secs: usize) -> &mut Self { -- self.add_to_custom_data("unique_for", secs) -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Remove unique lock for this job right before the job starts executing. - /// - /// Another job with the same kind-args-queue combination will be accepted by the Faktory server - /// after the period specified in [`unique_for`](JobBuilder::unique_for) has finished - /// _or_ after this job has been been consumed (i.e. its execution has ***started***). - pub fn unique_until_start(&mut self) -> &mut Self { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.81s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:60:28 - | -60 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:60:28 - | -60 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__mod.rs_line_69_col_9.log b/mutants.out/log/src__proto__single__ent__mod.rs_line_69_col_9.log deleted file mode 100644 index 3ac19d09..00000000 --- a/mutants.out/log/src__proto__single__ent__mod.rs_line_69_col_9.log +++ /dev/null @@ -1,64 +0,0 @@ - -*** src/proto/single/ent/mod.rs:69:9: replace JobBuilder::unique_until_start -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::unique_until_start -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -61,17 +61,17 @@ - } - - /// Remove unique lock for this job right before the job starts executing. - /// - /// Another job with the same kind-args-queue combination will be accepted by the Faktory server - /// after the period specified in [`unique_for`](JobBuilder::unique_for) has finished - /// _or_ after this job has been been consumed (i.e. its execution has ***started***). - pub fn unique_until_start(&mut self) -> &mut Self { -- self.add_to_custom_data("unique_until", "start") -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Do not remove unique lock for this job until it successfully finishes. - /// - /// Sets `unique_until` on the Job's custom hash to `success`, which is Faktory's default. - /// Another job with the same kind-args-queue combination will be accepted by the Faktory server - /// after the period specified in [`unique_for`](JobBuilder::unique_for) has finished - /// _or_ after this job has been been ***successfully*** processed. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.09s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:69:28 - | -69 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:69:28 - | -69 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__mod.rs_line_79_col_9.log b/mutants.out/log/src__proto__single__ent__mod.rs_line_79_col_9.log deleted file mode 100644 index 21e32433..00000000 --- a/mutants.out/log/src__proto__single__ent__mod.rs_line_79_col_9.log +++ /dev/null @@ -1,65 +0,0 @@ - -*** src/proto/single/ent/mod.rs:79:9: replace JobBuilder::unique_until_success -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/ent/mod.rs -+++ replace JobBuilder::unique_until_success -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -71,17 +71,17 @@ - - /// Do not remove unique lock for this job until it successfully finishes. - /// - /// Sets `unique_until` on the Job's custom hash to `success`, which is Faktory's default. - /// Another job with the same kind-args-queue combination will be accepted by the Faktory server - /// after the period specified in [`unique_for`](JobBuilder::unique_for) has finished - /// _or_ after this job has been been ***successfully*** processed. - pub fn unique_until_success(&mut self) -> &mut Self { -- self.add_to_custom_data("unique_until", "success") -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - #[cfg(test)] - mod test { - use crate::JobBuilder; - use chrono::{DateTime, Utc}; - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.06s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:79:28 - | -79 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/ent/mod.rs:79:28 - | -79 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - --> src/proto/single/mod.rs:65:48 - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__progress.rs_line_102_col_9.log b/mutants.out/log/src__proto__single__ent__progress.rs_line_102_col_9.log deleted file mode 100644 index b3803be9..00000000 --- a/mutants.out/log/src__proto__single__ent__progress.rs_line_102_col_9.log +++ /dev/null @@ -1,151 +0,0 @@ - -*** src/proto/single/ent/progress.rs:102:9: replace ::fmt -> std::fmt::Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace ::fmt -> std::fmt::Result with Ok(Default::default()) -@@ -94,26 +94,17 @@ - Failed, - - /// The jobs has been consumed but its status has never been updated. - Dead, - } - - impl std::fmt::Display for JobState { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { -- use JobState::*; -- let s = match self { -- Unknown => "unknown", -- Enqueued => "enqueued", -- Working => "working", -- Success => "success", -- Failed => "failed", -- Dead => "dead", -- }; -- write!(f, "{}", s) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - /// Info on job execution progress (retrieved). - /// - /// The tracker is guaranteed to get the following details: the job's id (though they should - /// know it beforehand in order to be ably to track the job), its last known [`state`](JobState), and - /// the date and time the job was last updated. Additionally, arbitrary information on what's going - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.56s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.05s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::queue ... ok -test community::hello_worker ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_client ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::fail ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__ent__progress.rs_line_146_col_9.log b/mutants.out/log/src__proto__single__ent__progress.rs_line_146_col_9.log deleted file mode 100644 index 0243edc5..00000000 --- a/mutants.out/log/src__proto__single__ent__progress.rs_line_146_col_9.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/proto/single/ent/progress.rs:146:9: replace Progress::update_percent -> ProgressUpdate with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace Progress::update_percent -> ProgressUpdate with Default::default() -@@ -138,19 +138,16 @@ - pub desc: Option, - } - - impl Progress { - /// Create an instance of `ProgressUpdate` for the job updating its completion percentage. - /// - /// This will copy the [`desc`](Progress::desc) from the `Progress` (retrieved) over to `ProgressUpdate` (to be sent). - pub fn update_percent(&self, percent: u8) -> ProgressUpdate { -- ProgressUpdate::builder(self.jid.clone()) -- .desc(self.desc.clone()) -- .percent(percent) -- .build() -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create an instance of `ProgressUpdateBuilder` for the job. - pub fn update_builder(&self) -> ProgressUpdateBuilder { - ProgressUpdateBuilder::new(self.jid.clone()) - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.08s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `ProgressUpdate: Default` is not satisfied - --> src/proto/single/ent/progress.rs:146:9 - | -146 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdate` - | -help: consider annotating `ProgressUpdate` with `#[derive(Default)]` - | -17 + #[derive(Default)] -18 | pub struct ProgressUpdate { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__progress.rs_line_154_col_9.log b/mutants.out/log/src__proto__single__ent__progress.rs_line_154_col_9.log deleted file mode 100644 index 65d4f485..00000000 --- a/mutants.out/log/src__proto__single__ent__progress.rs_line_154_col_9.log +++ /dev/null @@ -1,46 +0,0 @@ - -*** src/proto/single/ent/progress.rs:154:9: replace Progress::update_builder -> ProgressUpdateBuilder with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace Progress::update_builder -> ProgressUpdateBuilder with Default::default() -@@ -146,11 +146,11 @@ - ProgressUpdate::builder(self.jid.clone()) - .desc(self.desc.clone()) - .percent(percent) - .build() - } - - /// Create an instance of `ProgressUpdateBuilder` for the job. - pub fn update_builder(&self) -> ProgressUpdateBuilder { -- ProgressUpdateBuilder::new(self.jid.clone()) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.25s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `ProgressUpdateBuilder: Default` is not satisfied - --> src/proto/single/ent/progress.rs:154:9 - | -154 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdateBuilder` - | -help: consider annotating `ProgressUpdateBuilder` with `#[derive(Default)]` - | -11 | #[derive(Debug, Clone, Serialize, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__progress.rs_line_44_col_9.log b/mutants.out/log/src__proto__single__ent__progress.rs_line_44_col_9.log deleted file mode 100644 index 1029eaec..00000000 --- a/mutants.out/log/src__proto__single__ent__progress.rs_line_44_col_9.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/single/ent/progress.rs:44:9: replace ProgressUpdate::set -> ProgressUpdate with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace ProgressUpdate::set -> ProgressUpdate with Default::default() -@@ -36,17 +36,17 @@ - #[serde(skip_serializing_if = "Option::is_none")] - #[builder(default = "None")] - pub reserve_until: Option>, - } - - impl ProgressUpdate { - /// Create an instance of `ProgressUpdate` for the job with this ID specifying its completion percentage. - pub fn set(jid: JobId, percent: u8) -> ProgressUpdate { -- ProgressUpdate::builder(jid).percent(percent).build() -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new instance of `ProgressUpdateBuilder` with job ID already set. - /// - /// Equivalent to creating a [new](struct.ProgressUpdateBuilder.html#method.new) - /// `ProgressUpdateBuilder`. - pub fn builder(jid: JobId) -> ProgressUpdateBuilder { - ProgressUpdateBuilder::new(jid) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.94s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `ProgressUpdate: Default` is not satisfied - --> src/proto/single/ent/progress.rs:44:9 - | -44 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdate` - | -help: consider annotating `ProgressUpdate` with `#[derive(Default)]` - | -17 + #[derive(Default)] -18 | pub struct ProgressUpdate { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__progress.rs_line_52_col_9.log b/mutants.out/log/src__proto__single__ent__progress.rs_line_52_col_9.log deleted file mode 100644 index 248e50f7..00000000 --- a/mutants.out/log/src__proto__single__ent__progress.rs_line_52_col_9.log +++ /dev/null @@ -1,52 +0,0 @@ - -*** src/proto/single/ent/progress.rs:52:9: replace ProgressUpdate::builder -> ProgressUpdateBuilder with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace ProgressUpdate::builder -> ProgressUpdateBuilder with Default::default() -@@ -44,17 +44,17 @@ - ProgressUpdate::builder(jid).percent(percent).build() - } - - /// Create a new instance of `ProgressUpdateBuilder` with job ID already set. - /// - /// Equivalent to creating a [new](struct.ProgressUpdateBuilder.html#method.new) - /// `ProgressUpdateBuilder`. - pub fn builder(jid: JobId) -> ProgressUpdateBuilder { -- ProgressUpdateBuilder::new(jid) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl ProgressUpdateBuilder { - /// Builds an instance of ProgressUpdate. - pub fn build(&self) -> ProgressUpdate { - self.try_build() - .expect("Only jid is required, and it is set by all constructors.") - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.81s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `ProgressUpdateBuilder: Default` is not satisfied - --> src/proto/single/ent/progress.rs:52:9 - | -52 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdateBuilder` - | -help: consider annotating `ProgressUpdateBuilder` with `#[derive(Default)]` - | -11 | #[derive(Debug, Clone, Serialize, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__progress.rs_line_59_col_9.log b/mutants.out/log/src__proto__single__ent__progress.rs_line_59_col_9.log deleted file mode 100644 index e5efa958..00000000 --- a/mutants.out/log/src__proto__single__ent__progress.rs_line_59_col_9.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/single/ent/progress.rs:59:9: replace ProgressUpdateBuilder::build -> ProgressUpdate with Default::default() - -*** mutation diff: ---- src/proto/single/ent/progress.rs -+++ replace ProgressUpdateBuilder::build -> ProgressUpdate with Default::default() -@@ -51,18 +51,17 @@ - pub fn builder(jid: JobId) -> ProgressUpdateBuilder { - ProgressUpdateBuilder::new(jid) - } - } - - impl ProgressUpdateBuilder { - /// Builds an instance of ProgressUpdate. - pub fn build(&self) -> ProgressUpdate { -- self.try_build() -- .expect("Only jid is required, and it is set by all constructors.") -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new instance of `JobBuilder` - pub fn new(jid: JobId) -> ProgressUpdateBuilder { - ProgressUpdateBuilder { - jid: Some(jid), - ..ProgressUpdateBuilder::create_empty() - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `ProgressUpdate: Default` is not satisfied - --> src/proto/single/ent/progress.rs:59:9 - | -59 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `ProgressUpdate` - | -help: consider annotating `ProgressUpdate` with `#[derive(Default)]` - | -17 + #[derive(Default)] -18 | pub struct ProgressUpdate { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5.log b/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5.log deleted file mode 100644 index d0d90f9e..00000000 --- a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5.log +++ /dev/null @@ -1,94 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new(Default::default()))) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new(Default::default()))) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(Some(DateTime::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.06s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `new` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `DateTime<_>` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0599]: no function or associated item named `new` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::new(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `DateTime<_>` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log b/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log deleted file mode 100644 index bfced4ad..00000000 --- a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log +++ /dev/null @@ -1,63 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from(Default::default()))) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from(Default::default()))) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(Some(DateTime::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.89s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0283]: type annotations needed - --> src/proto/single/ent/utils.rs:13:13 - | -13 | Ok(Some(DateTime::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^ cannot infer type for type parameter `T` declared on the trait `From` - | - = note: multiple `impl`s satisfying `DateTime: From<_>` found in the following crates: `chrono`, `core`: - - impl From> for DateTime; - - impl From> for DateTime; - - impl From for DateTime; - - impl From for T; - - impl From for T; - -For more information about this error, try `rustc --explain E0283`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0283]: type annotations needed - --> src/proto/single/ent/utils.rs:13:13 - | -13 | Ok(Some(DateTime::from(Default::default()))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^ cannot infer type for type parameter `T` declared on the trait `From` - | - = note: multiple `impl`s satisfying `DateTime: From<_>` found in the following crates: `chrono`, `core`: - - impl From> for DateTime; - - impl From> for DateTime; - - impl From for DateTime; - - impl From for T; - - impl From for T; - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log b/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log deleted file mode 100644 index 68d7958a..00000000 --- a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log +++ /dev/null @@ -1,101 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from_iter([Default::default()]))) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::from_iter([Default::default()]))) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(Some(DateTime::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.89s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ - | | - | function or associated item not found in `DateTime<_>` - | help: there is an associated function with a similar name: `from_utc` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0599]: no function or associated item named `from_iter` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::from_iter([Default::default()]))) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ - | | - | function or associated item not found in `DateTime<_>` - | help: there is an associated function with a similar name: `from_utc` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log b/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log deleted file mode 100644 index 43a835d7..00000000 --- a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new())) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(Some(DateTime::new())) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(Some(DateTime::new())) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.88s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `new` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `DateTime<_>` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0599]: no function or associated item named `new` found for struct `DateTime` in the current scope - --> src/proto/single/ent/utils.rs:13:23 - | -13 | Ok(Some(DateTime::new())) /* ~ changed by cargo-mutants ~ */ - | ^^^ function or associated item not found in `DateTime<_>` - | -note: if you're trying to build a new `DateTime<_>` consider using one of the following associated functions: - DateTime::::from_naive_utc_and_offset - DateTime::::from_utc - DateTime::::from_local - DateTime::::from_timestamp - and 6 others - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.35/src/datetime/mod.rs:96:5 - | -96 | / pub const fn from_naive_utc_and_offset( -97 | | datetime: NaiveDateTime, -98 | | offset: Tz::Offset, -99 | | ) -> DateTime { - | |_____________________^ -... -110 | pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -128 | pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -... -725 | pub const fn from_timestamp(secs: i64, nsecs: u32) -> Option { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log b/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log deleted file mode 100644 index 253d8df4..00000000 --- a/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log +++ /dev/null @@ -1,138 +0,0 @@ - -*** src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(None) - -*** mutation diff: ---- src/proto/single/ent/utils.rs -+++ replace parse_datetime -> Result>, D::Error> with Ok(None) -@@ -5,13 +5,10 @@ - }; - - // Used to parse responses from Faktory where a datetime field is set to an empty string, e.g: - // '{"jid":"f6APFzrS2RZi9eaA","state":"unknown","updated_at":""}' - pub(crate) fn parse_datetime<'de, D>(value: D) -> Result>, D::Error> - where - D: Deserializer<'de>, - { -- match Option::::deserialize(value)?.as_deref() { -- Some("") | None => Ok(None), -- Some(non_empty) => DateTime::deserialize(non_empty.into_deserializer()).map(Some), -- } -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.12s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.56s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.05s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test community::queue ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__id.rs_line_43_col_9.log b/mutants.out/log/src__proto__single__id.rs_line_43_col_9.log deleted file mode 100644 index 307241e7..00000000 --- a/mutants.out/log/src__proto__single__id.rs_line_43_col_9.log +++ /dev/null @@ -1,97 +0,0 @@ - -*** src/proto/single/id.rs:43:9: replace JobId::random -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/id.rs -+++ replace JobId::random -> Self with Default::default() -@@ -35,17 +35,17 @@ - /// If you do not have any domain, product or organisation specific requirements, you may prefer - /// to have a random job identifier generated for you with [`random`](JobId::random). - #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] - pub struct JobId(String); - - impl JobId { - /// Internally, generates a 16-char long random ASCII string. - pub fn random() -> Self { -- Self(utils::gen_random_jid()) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - string_wrapper_impls!(JobId); - - // ----------------------------------------------------- - - /// Worker identifier. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.90s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.47s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... FAILED -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("") - right: JobId("") - ----- proto::single::test::test_job_can_be_created_with_builder stdout ---- -thread 'proto::single::test::test_job_can_be_created_with_builder' panicked at src/proto/single/mod.rs:292:9: -assertion failed: job.jid != "".into() - - -failures: - proto::single::test::test_all_job_creation_variants_align - proto::single::test::test_job_can_be_created_with_builder - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__id.rs_line_64_col_9.log b/mutants.out/log/src__proto__single__id.rs_line_64_col_9.log deleted file mode 100644 index 36d75655..00000000 --- a/mutants.out/log/src__proto__single__id.rs_line_64_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/id.rs:64:9: replace WorkerId::random -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/id.rs -+++ replace WorkerId::random -> Self with Default::default() -@@ -56,17 +56,17 @@ - /// If you do not have any domain, product or organisation specific requirements, you may prefer - /// to have a random job identifier generated for you with [`random`](WorkerId::random). - #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] - pub struct WorkerId(String); - - impl WorkerId { - /// Internally, generates a 32-char long random ASCII string. - pub fn random() -> Self { -- Self(utils::gen_random_wid()) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - string_wrapper_impls!(WorkerId); - - // ----------------------------------------------------- - - /// Batch identifier. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.97s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.34s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::enqueue_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_client ... ok -test community::fail ... ok -test community::roundtrip ... ok -test community::multi ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::queue ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__id.rs_line_84_col_9.log b/mutants.out/log/src__proto__single__id.rs_line_84_col_9.log deleted file mode 100644 index 2afebb47..00000000 --- a/mutants.out/log/src__proto__single__id.rs_line_84_col_9.log +++ /dev/null @@ -1,136 +0,0 @@ - -*** src/proto/single/id.rs:84:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/id.rs -+++ replace ::from -> Self with Default::default() -@@ -76,11 +76,11 @@ - #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] - pub struct BatchId(String); - - string_wrapper_impls!(BatchId); - - use serde_json::Value; - impl From for Value { - fn from(value: BatchId) -> Self { -- value.0.into() -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.88s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.14s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batches_can_be_nested ... ok -test community::hello_worker ... ok -test community::hello_client ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::multi ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test community::fail ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_start ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__mod.rs_line_171_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_171_col_9.log deleted file mode 100644 index d582d926..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_171_col_9.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/proto/single/mod.rs:171:9: replace JobBuilder::args -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace JobBuilder::args -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -163,18 +163,17 @@ - } - - /// Setter for the arguments provided for this job. - pub fn args(&mut self, args: I) -> &mut Self - where - I: IntoIterator, - V: Into, - { -- self.args = Some(args.into_iter().map(|s| s.into()).collect()); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Sets arbitrary key-value pairs to this job's custom data hash. - pub fn add_to_custom_data( - &mut self, - k: impl Into, - v: impl Into, - ) -> &mut Self { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:171:28 - | -171 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:171:28 - | -171 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_181_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_181_col_9.log deleted file mode 100644 index 9af76a83..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_181_col_9.log +++ /dev/null @@ -1,59 +0,0 @@ - -*** src/proto/single/mod.rs:181:9: replace JobBuilder::add_to_custom_data -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace JobBuilder::add_to_custom_data -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -173,19 +173,17 @@ - } - - /// Sets arbitrary key-value pairs to this job's custom data hash. - pub fn add_to_custom_data( - &mut self, - k: impl Into, - v: impl Into, - ) -> &mut Self { -- let custom = self.custom.get_or_insert_with(HashMap::new); -- custom.insert(k.into(), v.into()); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Builds a new [`Job`] from the parameters of this builder. - /// - /// For Enterprise edition of Faktory builds a new _trackable_ `Job`. - /// In Enterprise Faktory, a progress update can be sent and received only for the jobs - /// that have been explicitly marked as trackable via `"track":1` in the job's custom hash. - /// In case you have a reason to opt out of tracking, either unset (remove) the "track" on - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:181:28 - | -181 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:181:28 - | -181 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_194_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_194_col_9.log deleted file mode 100644 index 602083f8..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_194_col_9.log +++ /dev/null @@ -1,63 +0,0 @@ - -*** src/proto/single/mod.rs:194:9: replace JobBuilder::build -> Job with Default::default() - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace JobBuilder::build -> Job with Default::default() -@@ -186,21 +186,17 @@ - /// Builds a new [`Job`] from the parameters of this builder. - /// - /// For Enterprise edition of Faktory builds a new _trackable_ `Job`. - /// In Enterprise Faktory, a progress update can be sent and received only for the jobs - /// that have been explicitly marked as trackable via `"track":1` in the job's custom hash. - /// In case you have a reason to opt out of tracking, either unset (remove) the "track" on - /// the resulted job's [`custom`](Job::custom) hash or set it to 0. - pub fn build(&mut self) -> Job { -- if cfg!(feature = "ent") { -- self.add_to_custom_data("track", 1); -- } -- self.try_build() -- .expect("All required fields have been set.") -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[derive(Serialize, Deserialize, Debug, Clone)] - pub struct Failure { - retry_count: usize, - failed_at: String, - #[serde(skip_serializing_if = "Option::is_none")] - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Job: Default` is not satisfied - --> src/proto/single/mod.rs:194:9 - | -194 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Job` - | -help: consider annotating `Job` with `#[derive(Default)]` - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -For more information about this error, try `rustc --explain E0277`. -error[E0277]: the trait bound `single::Job: Default` is not satisfied - --> src/proto/single/mod.rs:194:9 - | -194 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Job` - | -help: consider annotating `single::Job` with `#[derive(Default)]` - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_231_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_231_col_9.log deleted file mode 100644 index 17edee24..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_231_col_9.log +++ /dev/null @@ -1,57 +0,0 @@ - -*** src/proto/single/mod.rs:231:9: replace Job::builder -> JobBuilder with Default::default() - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::builder -> JobBuilder with Default::default() -@@ -223,17 +223,17 @@ - { - JobBuilder::new(kind).args(args).build() - } - - /// Creates an ergonomic constructor for a new [`Job`]. - /// - /// Also equivalent to [`JobBuilder::new`]. - pub fn builder>(kind: S) -> JobBuilder { -- JobBuilder::new(kind) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// Place this job on the given `queue`. - /// - /// If this method is not called (or `self.queue` set otherwise), the queue will be set to - /// "default". - pub fn on_queue>(mut self, queue: S) -> Self { - self.queue = queue.into(); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:231:9 - | -231 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `JobBuilder` - | -help: consider annotating `JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::JobBuilder: Default` is not satisfied - --> src/proto/single/mod.rs:231:9 - | -231 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::JobBuilder` - | -help: consider annotating `single::JobBuilder` with `#[derive(Default)]` - | -65 | #[derive(Serialize, Deserialize, Debug, Clone, #[derive(Default)] - | ++++++++++++++++++ - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_239_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_239_col_9.log deleted file mode 100644 index 54297003..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_239_col_9.log +++ /dev/null @@ -1,60 +0,0 @@ - -*** src/proto/single/mod.rs:239:9: replace Job::on_queue -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::on_queue -> Self with Default::default() -@@ -231,18 +231,17 @@ - JobBuilder::new(kind) - } - - /// Place this job on the given `queue`. - /// - /// If this method is not called (or `self.queue` set otherwise), the queue will be set to - /// "default". - pub fn on_queue>(mut self, queue: S) -> Self { -- self.queue = queue.into(); -- self -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// This job's id. - pub fn id(&self) -> &JobId { - &self.jid - } - - /// This job's type. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Job: Default` is not satisfied - --> src/proto/single/mod.rs:239:9 - | -239 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Job` - | -help: consider annotating `Job` with `#[derive(Default)]` - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error[E0277]: the trait bound `single::Job: Default` is not satisfied - --> src/proto/single/mod.rs:239:9 - | -239 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `single::Job` - | -help: consider annotating `single::Job` with `#[derive(Default)]` - | -71 + #[derive(Default)] -72 | pub struct Job { - | - -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_245_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_245_col_9.log deleted file mode 100644 index d184594d..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_245_col_9.log +++ /dev/null @@ -1,44 +0,0 @@ - -*** src/proto/single/mod.rs:245:9: replace Job::id -> &JobId with &Default::default() - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::id -> &JobId with &Default::default() -@@ -237,17 +237,17 @@ - /// "default". - pub fn on_queue>(mut self, queue: S) -> Self { - self.queue = queue.into(); - self - } - - /// This job's id. - pub fn id(&self) -> &JobId { -- &self.jid -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - - /// This job's type. - pub fn kind(&self) -> &str { - &self.kind - } - - /// The arguments provided for this job. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0515]: cannot return reference to temporary value - --> src/proto/single/mod.rs:245:9 - | -245 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^------------------ - | || - | |temporary value created here - | returns a reference to data owned by the current function - -For more information about this error, try `rustc --explain E0515`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_250_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_250_col_9.log deleted file mode 100644 index 8d77a596..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_250_col_9.log +++ /dev/null @@ -1,140 +0,0 @@ - -*** src/proto/single/mod.rs:250:9: replace Job::kind -> &str with "xyzzy" - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::kind -> &str with "xyzzy" -@@ -242,17 +242,17 @@ - - /// This job's id. - pub fn id(&self) -> &JobId { - &self.jid - } - - /// This job's type. - pub fn kind(&self) -> &str { -- &self.kind -+ "xyzzy" /* ~ changed by cargo-mutants ~ */ - } - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { - &self.args - } - - /// Data about this job's most recent failure. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.30s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test well_behaved_many ... FAILED -test terminate ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 120, 121, 122, 122, 121, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 120, 121, 122, 122, 121, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_250_col_9_001.log b/mutants.out/log/src__proto__single__mod.rs_line_250_col_9_001.log deleted file mode 100644 index d0dc67c2..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_250_col_9_001.log +++ /dev/null @@ -1,140 +0,0 @@ - -*** src/proto/single/mod.rs:250:9: replace Job::kind -> &str with "" - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::kind -> &str with "" -@@ -242,17 +242,17 @@ - - /// This job's id. - pub fn id(&self) -> &JobId { - &self.jid - } - - /// This job's type. - pub fn kind(&self) -> &str { -- &self.kind -+ "" /* ~ changed by cargo-mutants ~ */ - } - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { - &self.args - } - - /// Data about this job's most recent failure. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.77s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.45s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test no_first_job ... FAILED -test terminate ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_255_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_255_col_9.log deleted file mode 100644 index 4dc8f2bc..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_255_col_9.log +++ /dev/null @@ -1,120 +0,0 @@ - -*** src/proto/single/mod.rs:255:9: replace Job::args -> &[serde_json::Value] with Vec::leak(Vec::new()) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::args -> &[serde_json::Value] with Vec::leak(Vec::new()) -@@ -247,17 +247,17 @@ - - /// This job's type. - pub fn kind(&self) -> &str { - &self.kind - } - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { -- &self.args -+ Vec::leak(Vec::new()) /* ~ changed by cargo-mutants ~ */ - } - - /// Data about this job's most recent failure. - pub fn failure(&self) -> &Option { - &self.failure - } - } - pub async fn write_command( - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.16s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.51s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:62:9: -assertion `left == right` failed - left: [] - right: ["z"] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:101:9: -assertion `left == right` failed - left: [] - right: ["z"] - - -failures: - dequeue - dequeue_first_empty - -test result: FAILED. 6 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_255_col_9_001.log b/mutants.out/log/src__proto__single__mod.rs_line_255_col_9_001.log deleted file mode 100644 index fbe6c485..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_255_col_9_001.log +++ /dev/null @@ -1,120 +0,0 @@ - -*** src/proto/single/mod.rs:255:9: replace Job::args -> &[serde_json::Value] with Vec::leak(vec![Default::default()]) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::args -> &[serde_json::Value] with Vec::leak(vec![Default::default()]) -@@ -247,17 +247,17 @@ - - /// This job's type. - pub fn kind(&self) -> &str { - &self.kind - } - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { -- &self.args -+ Vec::leak(vec![Default::default()]) /* ~ changed by cargo-mutants ~ */ - } - - /// Data about this job's most recent failure. - pub fn failure(&self) -> &Option { - &self.failure - } - } - pub async fn write_command( - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.92s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.34s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... FAILED -test hello ... ok -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:101:9: -assertion `left == right` failed - left: [Null] - right: ["z"] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:62:9: -assertion `left == right` failed - left: [Null] - right: ["z"] - - -failures: - dequeue - dequeue_first_empty - -test result: FAILED. 6 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_260_col_9.log b/mutants.out/log/src__proto__single__mod.rs_line_260_col_9.log deleted file mode 100644 index 0a1ea4e3..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_260_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/proto/single/mod.rs:260:9: replace Job::failure -> &Option with &Some(Default::default()) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::failure -> &Option with &Some(Default::default()) -@@ -252,17 +252,17 @@ - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { - &self.args - } - - /// Data about this job's most recent failure. - pub fn failure(&self) -> &Option { -- &self.failure -+ &Some(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - pub async fn write_command( - w: &mut W, - command: &C, - ) -> Result<(), Error> { - command.issue::(w).await?; - Ok(w.flush().await?) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Failure: Default` is not satisfied - --> src/proto/single/mod.rs:260:15 - | -260 | &Some(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Failure` - | -help: consider annotating `Failure` with `#[derive(Default)]` - | -203 + #[derive(Default)] -204 | pub struct Failure { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_260_col_9_001.log b/mutants.out/log/src__proto__single__mod.rs_line_260_col_9_001.log deleted file mode 100644 index a67707f8..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_260_col_9_001.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/mod.rs:260:9: replace Job::failure -> &Option with &None - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace Job::failure -> &Option with &None -@@ -252,17 +252,17 @@ - - /// The arguments provided for this job. - pub fn args(&self) -> &[serde_json::Value] { - &self.args - } - - /// Data about this job's most recent failure. - pub fn failure(&self) -> &Option { -- &self.failure -+ &None /* ~ changed by cargo-mutants ~ */ - } - } - pub async fn write_command( - w: &mut W, - command: &C, - ) -> Result<(), Error> { - command.issue::(w).await?; - Ok(w.flush().await?) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.81s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.59s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.13s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::enqueue_job ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::fail ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::queue ... ok -test community::multi ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__mod.rs_line_267_col_5.log b/mutants.out/log/src__proto__single__mod.rs_line_267_col_5.log deleted file mode 100644 index 4911b284..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_267_col_5.log +++ /dev/null @@ -1,157 +0,0 @@ - -*** src/proto/single/mod.rs:267:5: replace write_command -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace write_command -> Result<(), Error> with Ok(()) -@@ -259,18 +259,17 @@ - pub fn failure(&self) -> &Option { - &self.failure - } - } - pub async fn write_command( - w: &mut W, - command: &C, - ) -> Result<(), Error> { -- command.issue::(w).await?; -- Ok(w.flush().await?) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - pub async fn write_command_and_await_ok< - S: AsyncBufRead + AsyncWriteExt + Unpin + Send, - C: FaktoryCommand, - >( - stream: &mut S, - command: &C, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.58s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... FAILED -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... FAILED -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:17:5: -assertion failed: written.starts_with(b"HELLO {") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- hello_pwd stdout ---- -thread 'hello_pwd' panicked at tests/consumer.rs:46:5: -assertion failed: written.starts_with(b"HELLO {") - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:24: -range end index 25 out of range for slice of length 0 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - hello - hello_pwd - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 0 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__mod.rs_line_278_col_5.log b/mutants.out/log/src__proto__single__mod.rs_line_278_col_5.log deleted file mode 100644 index 19012873..00000000 --- a/mutants.out/log/src__proto__single__mod.rs_line_278_col_5.log +++ /dev/null @@ -1,151 +0,0 @@ - -*** src/proto/single/mod.rs:278:5: replace write_command_and_await_ok -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/mod.rs -+++ replace write_command_and_await_ok -> Result<(), Error> with Ok(()) -@@ -270,18 +270,17 @@ - - pub async fn write_command_and_await_ok< - S: AsyncBufRead + AsyncWriteExt + Unpin + Send, - C: FaktoryCommand, - >( - stream: &mut S, - command: &C, - ) -> Result<(), Error> { -- write_command(stream, command).await?; -- read_ok(stream).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - #[cfg(test)] - mod test { - use super::*; - - #[test] - fn test_job_can_be_created_with_builder() { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.13s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.56s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... FAILED -test hello ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test terminate ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:17:5: -assertion failed: written.starts_with(b"HELLO {") - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- hello_pwd stdout ---- -thread 'hello_pwd' panicked at tests/consumer.rs:46:5: -assertion failed: written.starts_with(b"HELLO {") - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:5: -assertion `left == right` failed - left: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 66, 69, 65, 84, 32] - right: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 70, 65, 73, 76, 32] - - -failures: - dequeue - dequeue_first_empty - hello - hello_pwd - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 0 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_110_col_5.log b/mutants.out/log/src__proto__single__resp.rs_line_110_col_5.log deleted file mode 100644 index 859017af..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_110_col_5.log +++ /dev/null @@ -1,147 +0,0 @@ - -*** src/proto/single/resp.rs:110:5: replace read_ok -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_ok -> Result<(), Error> with Ok(()) -@@ -102,24 +102,17 @@ - } - } - Err(bad("server hi", &rr).into()) - } - - // ---------------------------------------------- - - pub async fn read_ok(r: R) -> Result<(), Error> { -- let rr = read(r).await?; -- if let RawResponse::String(ref s) = rr { -- if s == "OK" { -- return Ok(()); -- } -- } -- -- Err(bad("server ok", &rr).into()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - // - // below is the implementation of the Redis RESP protocol - // - // ---------------------------------------------- - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.58s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.09s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test terminate ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:5: -assertion `left == right` failed - left: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 66, 69, 65, 84, 32] - right: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 70, 65, 73, 76, 32] - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_112_col_14.log b/mutants.out/log/src__proto__single__resp.rs_line_112_col_14.log deleted file mode 100644 index eb1434d6..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_112_col_14.log +++ /dev/null @@ -1,226 +0,0 @@ - -*** src/proto/single/resp.rs:112:14: replace == with != in read_ok - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace == with != in read_ok -@@ -104,17 +104,17 @@ - Err(bad("server hi", &rr).into()) - } - - // ---------------------------------------------- - - pub async fn read_ok(r: R) -> Result<(), Error> { - let rr = read(r).await?; - if let RawResponse::String(ref s) = rr { -- if s == "OK" { -+ if s != /* ~ changed by cargo-mutants ~ */ "OK" { - return Ok(()); - } - } - - Err(bad("server ok", &rr).into()) - } - - // ---------------------------------------------- - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.47s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... FAILED -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... FAILED -thread 'well_behaved_many' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 3 -thread 'well_behaved_many' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x5fe4884897b6 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x5fe4884897b6 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x5fe4884897b6 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x5fe4884897b6 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x5fe4884b2e90 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x5fe4884b2e90 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x5fe488486e0f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x5fe488489594 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x5fe488489594 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x5fe48848b307 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x5fe48848afed - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x5fe4883230a7 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x5fe4883230a7 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x5fe48848b926 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x5fe48848b926 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x5fe48848b672 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x5fe488489cb6 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x5fe48848b3c4 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x5fe488227ca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x5fe4882282a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x5fe4882517b4 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x5fe4882517b4 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/mock/mod.rs:136:17 - 22: 0x5fe48824cf73 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x5fe4882c746f - consumer::well_behaved_many::{{closure}}::h2d3fe6f7863cb608 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:356:1 - 24: 0x5fe488229793 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x5fe4882a0164 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x5fe48829f660 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x5fe48829f660 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x5fe48829f660 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x5fe4882d0534 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x5fe48823fd88 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x5fe488282914 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x5fe48823fd58 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x5fe4882a9277 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x5fe4882b00c8 - consumer::well_behaved_many::h1d439a0e79b7622f - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:345:5 - 35: 0x5fe4882c7287 - consumer::well_behaved_many::{{closure}}::h9fd75a9e7c3cb1df - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:283:29 - 36: 0x5fe488245bc6 - core::ops::function::FnOnce::call_once::hfd4ec7262c8f776d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x5fe488328c6f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x5fe488328c6f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x5fe488327ac1 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x5fe488327ac1 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x5fe488327ac1 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x5fe488327ac1 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x5fe488327ac1 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x5fe488327ac1 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x5fe488327ac1 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x5fe4882eeea6 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x5fe4882eeea6 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x5fe4882f3ee7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x5fe4882f3ee7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x5fe4882f3ee7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x5fe4882f3ee7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x5fe4882f3ee7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x5fe4882f3ee7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x5fe4882f3ee7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x5fe48848fe45 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x5fe48848fe45 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x5fe48848fe45 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x7b9cd8294ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x7b9cd8326850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'well_behaved_many' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_138_col_5.log b/mutants.out/log/src__proto__single__resp.rs_line_138_col_5.log deleted file mode 100644 index b422f0b5..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_138_col_5.log +++ /dev/null @@ -1,135 +0,0 @@ - -*** src/proto/single/resp.rs:138:5: replace read -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read -> Result with Ok(Default::default()) -@@ -130,111 +130,17 @@ - Number(isize), - Null, - } - - async fn read(mut r: R) -> Result - where - R: AsyncReadExt + AsyncBufReadExt + Unpin, - { -- let mut cmdbuf = [0u8; 1]; -- r.read_exact(&mut cmdbuf).await?; -- match cmdbuf[0] { -- b'+' => { -- // Simple String -- // https://redis.io/topics/protocol#resp-simple-strings -- let mut s = String::new(); -- r.read_line(&mut s).await?; -- -- // remove newlines -- let l = s.len() - 2; -- s.truncate(l); -- -- Ok(RawResponse::String(s)) -- } -- b'-' => { -- // Error -- // https://redis.io/topics/protocol#resp-errors -- let mut s = String::new(); -- r.read_line(&mut s).await?; -- -- // remove newlines -- let l = s.len() - 2; -- s.truncate(l); -- -- Err(error::Protocol::new(s).into()) -- } -- b':' => { -- // Integer -- // https://redis.io/topics/protocol#resp-integers -- let mut s = String::with_capacity(32); -- r.read_line(&mut s).await?; -- -- // remove newlines -- let l = s.len() - 2; -- s.truncate(l); -- -- match (*s).parse::() { -- Ok(i) => Ok(RawResponse::Number(i)), -- Err(_) => Err(error::Protocol::BadResponse { -- typed_as: "integer", -- error: "invalid integer value", -- bytes: s.into_bytes(), -- } -- .into()), -- } -- } -- b'$' => { -- // Bulk String -- // https://redis.io/topics/protocol#resp-bulk-strings -- let mut bytes = Vec::with_capacity(32); -- r.read_until(b'\n', &mut bytes).await?; -- let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { -- error::Protocol::BadResponse { -- typed_as: "bulk string", -- error: "server bulk response contains non-utf8 size prefix", -- bytes: bytes[0..bytes.len() - 2].to_vec(), -- } -- })?; -- -- let size = s -- .parse::() -- .map_err(|_| error::Protocol::BadResponse { -- typed_as: "bulk string", -- error: "server bulk response size prefix is not an integer", -- bytes: s.as_bytes().to_vec(), -- })?; -- -- if size == -1 { -- Ok(RawResponse::Null) -- } else { -- let size = size as usize; -- let mut bytes = vec![0; size]; -- r.read_exact(&mut bytes[..]).await?; -- r.read_exact(&mut [0u8; 2]).await?; -- Ok(RawResponse::Blob(bytes)) -- } -- } -- b'*' => { -- // Arrays -- // https://redis.io/topics/protocol#resp-arrays -- // -- // not used in faktory. -- // *and* you can't really skip them unless you parse them. -- // *and* not parsing them would leave the stream in an inconsistent state. -- // so we'll just give up -- unimplemented!(); -- } -- c => Err(error::Protocol::BadResponse { -- typed_as: "unknown", -- error: "invalid response type prefix", -- bytes: vec![c], -- } -- .into()), -- } -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - // these are mostly for convenience for testing - - impl<'a> From<&'a str> for RawResponse { - fn from(s: &'a str) -> Self { - RawResponse::String(s.to_string()) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `RawResponse: Default` is not satisfied - --> src/proto/single/resp.rs:138:8 - | -138 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `RawResponse` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_148_col_29.log b/mutants.out/log/src__proto__single__resp.rs_line_148_col_29.log deleted file mode 100644 index 7a5a1339..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_148_col_29.log +++ /dev/null @@ -1,97 +0,0 @@ - -*** src/proto/single/resp.rs:148:29: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -140,17 +140,17 @@ - match cmdbuf[0] { - b'+' => { - // Simple String - // https://redis.io/topics/protocol#resp-simple-strings - let mut s = String::new(); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() + /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - Ok(RawResponse::String(s)) - } - b'-' => { - // Error - // https://redis.io/topics/protocol#resp-errors - let mut s = String::new(); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.23s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.63s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... FAILED -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... FAILED -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_json_ok_string stdout ---- -thread 'proto::single::resp::test::it_decodes_json_ok_string' panicked at src/proto/single/resp.rs:349:39: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- proto::single::resp::test::it_parses_simple_strings stdout ---- -thread 'proto::single::resp::test::it_parses_simple_strings' panicked at src/proto/single/resp.rs:271:9: -assertion `left == right` failed - left: String("OK\r\n") - right: String("OK") - - -failures: - proto::single::resp::test::it_decodes_json_ok_string - proto::single::resp::test::it_parses_simple_strings - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_148_col_29_001.log b/mutants.out/log/src__proto__single__resp.rs_line_148_col_29_001.log deleted file mode 100644 index 2fdc0697..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_148_col_29_001.log +++ /dev/null @@ -1,91 +0,0 @@ - -*** src/proto/single/resp.rs:148:29: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -140,17 +140,17 @@ - match cmdbuf[0] { - b'+' => { - // Simple String - // https://redis.io/topics/protocol#resp-simple-strings - let mut s = String::new(); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() / /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - Ok(RawResponse::String(s)) - } - b'-' => { - // Error - // https://redis.io/topics/protocol#resp-errors - let mut s = String::new(); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.99s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.55s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... FAILED -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_string_json stdout ---- -thread 'proto::single::resp::test::it_decodes_string_json' panicked at src/proto/single/resp.rs:375:39: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 6)) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - proto::single::resp::test::it_decodes_string_json - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.18s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_160_col_29.log b/mutants.out/log/src__proto__single__resp.rs_line_160_col_29.log deleted file mode 100644 index dbe86da9..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_160_col_29.log +++ /dev/null @@ -1,92 +0,0 @@ - -*** src/proto/single/resp.rs:160:29: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -152,17 +152,17 @@ - } - b'-' => { - // Error - // https://redis.io/topics/protocol#resp-errors - let mut s = String::new(); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() + /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - Err(error::Protocol::new(s).into()) - } - b':' => { - // Integer - // https://redis.io/topics/protocol#resp-integers - let mut s = String::with_capacity(32); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.12s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.62s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... FAILED -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_parses_errors stdout ---- -thread 'proto::single::resp::test::it_parses_errors' panicked at src/proto/single/resp.rs:298:13: -assertion `left == right` failed - left: "foo\r\n" - right: "foo" - - -failures: - proto::single::resp::test::it_parses_errors - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.29s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_160_col_29_001.log b/mutants.out/log/src__proto__single__resp.rs_line_160_col_29_001.log deleted file mode 100644 index 507815e0..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_160_col_29_001.log +++ /dev/null @@ -1,92 +0,0 @@ - -*** src/proto/single/resp.rs:160:29: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -152,17 +152,17 @@ - } - b'-' => { - // Error - // https://redis.io/topics/protocol#resp-errors - let mut s = String::new(); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() / /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - Err(error::Protocol::new(s).into()) - } - b':' => { - // Integer - // https://redis.io/topics/protocol#resp-integers - let mut s = String::with_capacity(32); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.19s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.55s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... FAILED -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_parses_errors stdout ---- -thread 'proto::single::resp::test::it_parses_errors' panicked at src/proto/single/resp.rs:298:13: -assertion `left == right` failed - left: "" - right: "foo" - - -failures: - proto::single::resp::test::it_parses_errors - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.04s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_172_col_29.log b/mutants.out/log/src__proto__single__resp.rs_line_172_col_29.log deleted file mode 100644 index 05207f45..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_172_col_29.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/proto/single/resp.rs:172:29: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -164,17 +164,17 @@ - } - b':' => { - // Integer - // https://redis.io/topics/protocol#resp-integers - let mut s = String::with_capacity(32); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() + /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - match (*s).parse::() { - Ok(i) => Ok(RawResponse::Number(i)), - Err(_) => Err(error::Protocol::BadResponse { - typed_as: "integer", - error: "invalid integer value", - bytes: s.into_bytes(), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.99s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.90s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... FAILED -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... FAILED -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_parses_numbers stdout ---- -thread 'proto::single::resp::test::it_parses_numbers' panicked at src/proto/single/resp.rs:277:34: -called `Result::unwrap()` on an `Err` value: Protocol(BadResponse { typed_as: "integer", error: "invalid integer value", bytes: [49, 48, 50, 52, 13, 10] }) - ----- proto::single::resp::test::json_error_on_number stdout ---- -thread 'proto::single::resp::test::json_error_on_number' panicked at src/proto/single/resp.rs:417:13: -internal error: entered unreachable code - - -failures: - proto::single::resp::test::it_parses_numbers - proto::single::resp::test::json_error_on_number - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.02s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_172_col_29_001.log b/mutants.out/log/src__proto__single__resp.rs_line_172_col_29_001.log deleted file mode 100644 index d73e9aa2..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_172_col_29_001.log +++ /dev/null @@ -1,92 +0,0 @@ - -*** src/proto/single/resp.rs:172:29: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -164,17 +164,17 @@ - } - b':' => { - // Integer - // https://redis.io/topics/protocol#resp-integers - let mut s = String::with_capacity(32); - r.read_line(&mut s).await?; - - // remove newlines -- let l = s.len() - 2; -+ let l = s.len() / /* ~ changed by cargo-mutants ~ */ 2; - s.truncate(l); - - match (*s).parse::() { - Ok(i) => Ok(RawResponse::Number(i)), - Err(_) => Err(error::Protocol::BadResponse { - typed_as: "integer", - error: "invalid integer value", - bytes: s.into_bytes(), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.49s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... FAILED -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_parses_numbers stdout ---- -thread 'proto::single::resp::test::it_parses_numbers' panicked at src/proto/single/resp.rs:277:9: -assertion `left == right` failed - left: Number(102) - right: Number(1024) - - -failures: - proto::single::resp::test::it_parses_numbers - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.19s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_190_col_63.log b/mutants.out/log/src__proto__single__resp.rs_line_190_col_63.log deleted file mode 100644 index aebf94ff..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_190_col_63.log +++ /dev/null @@ -1,138 +0,0 @@ - -*** src/proto/single/resp.rs:190:63: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -182,17 +182,17 @@ - .into()), - } - } - b'$' => { - // Bulk String - // https://redis.io/topics/protocol#resp-bulk-strings - let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes).await?; -- let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { -+ let s = std::str::from_utf8(&bytes[0..bytes.len() / /* ~ changed by cargo-mutants ~ */ 2]).map_err(|_| { - error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response contains non-utf8 size prefix", - bytes: bytes[0..bytes.len() - 2].to_vec(), - } - })?; - - let size = s - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.10s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.48s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello ... ok -test hello_pwd ... ok -test well_behaved ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue stdout ---- -Serialization(Error("EOF while parsing a string", line: 1, column: 18)) -thread 'dequeue' panicked at tests/consumer.rs:85:9: -internal error: entered unreachable code - ----- dequeue_first_empty stdout ---- -Serialization(Error("EOF while parsing a string", line: 1, column: 18)) -thread 'dequeue_first_empty' panicked at tests/consumer.rs:136:13: -internal error: entered unreachable code -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 18)) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 18)) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 18)) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: Serialization(Error("EOF while parsing a string", line: 1, column: 18)) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_190_col_63_001.log b/mutants.out/log/src__proto__single__resp.rs_line_190_col_63_001.log deleted file mode 100644 index cb1bece3..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_190_col_63_001.log +++ /dev/null @@ -1,131 +0,0 @@ - -*** src/proto/single/resp.rs:190:63: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -182,17 +182,17 @@ - .into()), - } - } - b'$' => { - // Bulk String - // https://redis.io/topics/protocol#resp-bulk-strings - let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes).await?; -- let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { -+ let s = std::str::from_utf8(&bytes[0..bytes.len() + /* ~ changed by cargo-mutants ~ */ 2]).map_err(|_| { - error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response contains non-utf8 size prefix", - bytes: bytes[0..bytes.len() - 2].to_vec(), - } - })?; - - let size = s - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.45s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... FAILED -test proto::single::resp::test::it_decodes_json_empty ... FAILED -test proto::single::resp::test::it_decodes_json_ok_blob ... FAILED -test proto::single::resp::test::it_decodes_json_nill ... FAILED -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... FAILED -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_nills ... FAILED -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... FAILED -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... FAILED -test proto::single::resp::test::it_parses_empty_bulk ... FAILED -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_blob_json stdout ---- -thread 'proto::single::resp::test::it_decodes_blob_json' panicked at src/proto/single/resp.rs:190:47: -range end index 6 out of range for slice of length 4 - ----- proto::single::resp::test::it_decodes_json_empty stdout ---- -thread 'proto::single::resp::test::it_decodes_json_empty' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - ----- proto::single::resp::test::it_decodes_json_ok_blob stdout ---- -thread 'proto::single::resp::test::it_decodes_json_ok_blob' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - ----- proto::single::resp::test::it_decodes_json_nill stdout ---- -thread 'proto::single::resp::test::it_decodes_json_nill' panicked at src/proto/single/resp.rs:190:47: -range end index 6 out of range for slice of length 4 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- proto::single::resp::test::it_errors_on_bad_json_blob stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_blob' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - ----- proto::single::resp::test::it_parses_nills stdout ---- -thread 'proto::single::resp::test::it_parses_nills' panicked at src/proto/single/resp.rs:190:47: -range end index 6 out of range for slice of length 4 - ----- proto::single::resp::test::it_parses_non_empty_bulk stdout ---- -thread 'proto::single::resp::test::it_parses_non_empty_bulk' panicked at src/proto/single/resp.rs:190:47: -range end index 6 out of range for slice of length 4 - ----- proto::single::resp::test::it_errors_on_bad_sizes stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_sizes' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - ----- proto::single::resp::test::it_parses_empty_bulk stdout ---- -thread 'proto::single::resp::test::it_parses_empty_bulk' panicked at src/proto/single/resp.rs:190:47: -range end index 5 out of range for slice of length 3 - - -failures: - proto::single::resp::test::it_decodes_blob_json - proto::single::resp::test::it_decodes_json_empty - proto::single::resp::test::it_decodes_json_nill - proto::single::resp::test::it_decodes_json_ok_blob - proto::single::resp::test::it_errors_on_bad_json_blob - proto::single::resp::test::it_errors_on_bad_sizes - proto::single::resp::test::it_parses_empty_bulk - proto::single::resp::test::it_parses_nills - proto::single::resp::test::it_parses_non_empty_bulk - -test result: FAILED. 26 passed; 9 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_194_col_49.log b/mutants.out/log/src__proto__single__resp.rs_line_194_col_49.log deleted file mode 100644 index 5f9d2887..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_194_col_49.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/resp.rs:194:49: replace - with + in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with + in read -@@ -186,17 +186,17 @@ - // Bulk String - // https://redis.io/topics/protocol#resp-bulk-strings - let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes).await?; - let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { - error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response contains non-utf8 size prefix", -- bytes: bytes[0..bytes.len() - 2].to_vec(), -+ bytes: bytes[0..bytes.len() + /* ~ changed by cargo-mutants ~ */ 2].to_vec(), - } - })?; - - let size = s - .parse::() - .map_err(|_| error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response size prefix is not an integer", - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.09s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.57s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.06s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::fail ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_client ... ok -test community::multi ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::queue ... ok -test enterprise::test_batches_can_be_nested ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__resp.rs_line_194_col_49_001.log b/mutants.out/log/src__proto__single__resp.rs_line_194_col_49_001.log deleted file mode 100644 index 8e8df8a0..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_194_col_49_001.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/resp.rs:194:49: replace - with / in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace - with / in read -@@ -186,17 +186,17 @@ - // Bulk String - // https://redis.io/topics/protocol#resp-bulk-strings - let mut bytes = Vec::with_capacity(32); - r.read_until(b'\n', &mut bytes).await?; - let s = std::str::from_utf8(&bytes[0..bytes.len() - 2]).map_err(|_| { - error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response contains non-utf8 size prefix", -- bytes: bytes[0..bytes.len() - 2].to_vec(), -+ bytes: bytes[0..bytes.len() / /* ~ changed by cargo-mutants ~ */ 2].to_vec(), - } - })?; - - let size = s - .parse::() - .map_err(|_| error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response size prefix is not an integer", - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.33s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.77s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test community::multi ... ok -test community::hello_worker ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::queue ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__resp.rs_line_206_col_21.log b/mutants.out/log/src__proto__single__resp.rs_line_206_col_21.log deleted file mode 100644 index 586949dd..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_206_col_21.log +++ /dev/null @@ -1,122 +0,0 @@ - -*** src/proto/single/resp.rs:206:21: replace == with != in read - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace == with != in read -@@ -198,17 +198,17 @@ - let size = s - .parse::() - .map_err(|_| error::Protocol::BadResponse { - typed_as: "bulk string", - error: "server bulk response size prefix is not an integer", - bytes: s.as_bytes().to_vec(), - })?; - -- if size == -1 { -+ if size != /* ~ changed by cargo-mutants ~ */ -1 { - Ok(RawResponse::Null) - } else { - let size = size as usize; - let mut bytes = vec![0; size]; - r.read_exact(&mut bytes[..]).await?; - r.read_exact(&mut [0u8; 2]).await?; - Ok(RawResponse::Blob(bytes)) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.47s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... FAILED -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... FAILED -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_nills ... FAILED -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... FAILED -test proto::single::resp::test::it_decodes_blob_json ... FAILED -test proto::single::resp::test::it_errors_on_bad_json_blob ... FAILED -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_parses_non_empty_bulk stdout ---- -thread 'proto::single::resp::test::it_parses_non_empty_bulk' panicked at src/proto/single/resp.rs:340:9: -assertion `left == right` failed - left: Null - right: Blob([72, 69, 76, 76, 79, 32, 87, 79, 82, 76, 68]) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- proto::single::resp::test::it_parses_empty_bulk stdout ---- -thread 'proto::single::resp::test::it_parses_empty_bulk' panicked at src/proto/single/resp.rs:334:9: -assertion `left == right` failed - left: Null - right: Blob([]) - ----- proto::single::resp::test::it_parses_nills stdout ---- -thread 'proto::single::resp::test::it_parses_nills' panicked at library/alloc/src/raw_vec.rs:570:5: -capacity overflow - ----- proto::single::resp::test::it_decodes_json_nill stdout ---- -thread 'proto::single::resp::test::it_decodes_json_nill' panicked at library/alloc/src/raw_vec.rs:570:5: -capacity overflow - ----- proto::single::resp::test::it_decodes_blob_json stdout ---- -thread 'proto::single::resp::test::it_decodes_blob_json' panicked at src/proto/single/resp.rs:383:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) - ----- proto::single::resp::test::it_errors_on_bad_json_blob stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_blob' panicked at src/proto/single/resp.rs:389:63: -called `Result::unwrap_err()` on an `Ok` value: None - - -failures: - proto::single::resp::test::it_decodes_blob_json - proto::single::resp::test::it_decodes_json_nill - proto::single::resp::test::it_errors_on_bad_json_blob - proto::single::resp::test::it_parses_empty_bulk - proto::single::resp::test::it_parses_nills - proto::single::resp::test::it_parses_non_empty_bulk - -test result: FAILED. 29 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.15s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_239_col_9.log b/mutants.out/log/src__proto__single__resp.rs_line_239_col_9.log deleted file mode 100644 index a4882365..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_239_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/single/resp.rs:239:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace ::from -> Self with Default::default() -@@ -231,17 +231,17 @@ - .into()), - } - } - - // these are mostly for convenience for testing - - impl<'a> From<&'a str> for RawResponse { - fn from(s: &'a str) -> Self { -- RawResponse::String(s.to_string()) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl From for RawResponse { - fn from(i: isize) -> Self { - RawResponse::Number(i) - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `RawResponse: Default` is not satisfied - --> src/proto/single/resp.rs:239:9 - | -239 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `RawResponse` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_245_col_9.log b/mutants.out/log/src__proto__single__resp.rs_line_245_col_9.log deleted file mode 100644 index 8ef77541..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_245_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/single/resp.rs:245:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace ::from -> Self with Default::default() -@@ -237,17 +237,17 @@ - impl<'a> From<&'a str> for RawResponse { - fn from(s: &'a str) -> Self { - RawResponse::String(s.to_string()) - } - } - - impl From for RawResponse { - fn from(i: isize) -> Self { -- RawResponse::Number(i) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl From> for RawResponse { - fn from(b: Vec) -> Self { - RawResponse::Blob(b) - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `RawResponse: Default` is not satisfied - --> src/proto/single/resp.rs:245:9 - | -245 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `RawResponse` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_251_col_9.log b/mutants.out/log/src__proto__single__resp.rs_line_251_col_9.log deleted file mode 100644 index 7b434c08..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_251_col_9.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/single/resp.rs:251:9: replace ::from -> Self with Default::default() - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace ::from -> Self with Default::default() -@@ -243,17 +243,17 @@ - impl From for RawResponse { - fn from(i: isize) -> Self { - RawResponse::Number(i) - } - } - - impl From> for RawResponse { - fn from(b: Vec) -> Self { -- RawResponse::Blob(b) -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - #[cfg(test)] - mod test { - use super::{read, RawResponse}; - - use crate::error::{self, Error}; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `RawResponse: Default` is not satisfied - --> src/proto/single/resp.rs:251:9 - | -251 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `RawResponse` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_37_col_5.log b/mutants.out/log/src__proto__single__resp.rs_line_37_col_5.log deleted file mode 100644 index 5e11451d..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_37_col_5.log +++ /dev/null @@ -1,71 +0,0 @@ - -*** src/proto/single/resp.rs:37:5: replace read_json -> Result, Error> with Ok(Some(Default::default())) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_json -> Result, Error> with Ok(Some(Default::default())) -@@ -29,42 +29,17 @@ - } - } - - // ---------------------------------------------- - - pub async fn read_json( - r: R, - ) -> Result, Error> { -- let rr = read(r).await?; -- match rr { -- RawResponse::String(ref s) if s == "OK" => { -- return Ok(None); -- } -- RawResponse::String(ref s) => { -- return serde_json::from_str(s) -- .map(Some) -- .map_err(Error::Serialization); -- } -- RawResponse::Blob(ref b) if b == b"OK" => { -- return Ok(None); -- } -- RawResponse::Blob(ref b) => { -- if b.is_empty() { -- return Ok(None); -- } -- return serde_json::from_slice(b) -- .map(Some) -- .map_err(Error::Serialization); -- } -- RawResponse::Null => return Ok(None), -- _ => {} -- }; -- -- Err(bad("json", &rr).into()) -+ Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - #[cfg(feature = "ent")] - pub async fn read_bid(r: R) -> Result { - match read(r).await? { - RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `T: Default` is not satisfied - --> src/proto/single/resp.rs:37:13 - | -37 | Ok(Some(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `T` - | -help: consider further restricting this bound - | -34 | pub async fn read_json( - | +++++++++++++++++++++++ - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_37_col_5_001.log b/mutants.out/log/src__proto__single__resp.rs_line_37_col_5_001.log deleted file mode 100644 index 17ced306..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_37_col_5_001.log +++ /dev/null @@ -1,145 +0,0 @@ - -*** src/proto/single/resp.rs:37:5: replace read_json -> Result, Error> with Ok(None) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_json -> Result, Error> with Ok(None) -@@ -29,42 +29,17 @@ - } - } - - // ---------------------------------------------- - - pub async fn read_json( - r: R, - ) -> Result, Error> { -- let rr = read(r).await?; -- match rr { -- RawResponse::String(ref s) if s == "OK" => { -- return Ok(None); -- } -- RawResponse::String(ref s) => { -- return serde_json::from_str(s) -- .map(Some) -- .map_err(Error::Serialization); -- } -- RawResponse::Blob(ref b) if b == b"OK" => { -- return Ok(None); -- } -- RawResponse::Blob(ref b) => { -- if b.is_empty() { -- return Ok(None); -- } -- return serde_json::from_slice(b) -- .map(Some) -- .map_err(Error::Serialization); -- } -- RawResponse::Null => return Ok(None), -- _ => {} -- }; -- -- Err(bad("json", &rr).into()) -+ Ok(None) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - #[cfg(feature = "ent")] - pub async fn read_bid(r: R) -> Result { - match read(r).await? { - RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.21s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.83s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... FAILED -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_blob_json ... FAILED -test proto::single::resp::test::it_errors_on_bad_json_string ... FAILED -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... FAILED -test proto::single::resp::test::it_decodes_string_json ... FAILED -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... FAILED -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_errors_on_unknown_resp_type stdout ---- -thread 'proto::single::resp::test::it_errors_on_unknown_resp_type' panicked at src/proto/single/resp.rs:401:33: -called `Result::unwrap_err()` on an `Ok` value: None - ----- proto::single::resp::test::it_decodes_blob_json stdout ---- -thread 'proto::single::resp::test::it_decodes_blob_json' panicked at src/proto/single/resp.rs:358:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) - ----- proto::single::resp::test::it_errors_on_bad_json_string stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_string' panicked at src/proto/single/resp.rs:374:63: -called `Result::unwrap_err()` on an `Ok` value: None - ----- proto::single::resp::test::it_errors_on_bad_json_blob stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_blob' panicked at src/proto/single/resp.rs:364:63: -called `Result::unwrap_err()` on an `Ok` value: None - ----- proto::single::resp::test::it_decodes_string_json stdout ---- -thread 'proto::single::resp::test::it_decodes_string_json' panicked at src/proto/single/resp.rs:350:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- proto::single::resp::test::json_error_on_number stdout ---- -thread 'proto::single::resp::test::json_error_on_number' panicked at src/proto/single/resp.rs:387:33: -called `Result::unwrap_err()` on an `Ok` value: None - - -failures: - proto::single::resp::test::it_decodes_blob_json - proto::single::resp::test::it_decodes_string_json - proto::single::resp::test::it_errors_on_bad_json_blob - proto::single::resp::test::it_errors_on_bad_json_string - proto::single::resp::test::it_errors_on_unknown_resp_type - proto::single::resp::test::json_error_on_number - -test result: FAILED. 29 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_39_col_41.log b/mutants.out/log/src__proto__single__resp.rs_line_39_col_41.log deleted file mode 100644 index 437a3ee9..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_39_col_41.log +++ /dev/null @@ -1,103 +0,0 @@ - -*** src/proto/single/resp.rs:39:41: replace == with != in read_json - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace == with != in read_json -@@ -31,17 +31,17 @@ - - // ---------------------------------------------- - - pub async fn read_json( - r: R, - ) -> Result, Error> { - let rr = read(r).await?; - match rr { -- RawResponse::String(ref s) if s == "OK" => { -+ RawResponse::String(ref s) if s != /* ~ changed by cargo-mutants ~ */ "OK" => { - return Ok(None); - } - RawResponse::String(ref s) => { - return serde_json::from_str(s) - .map(Some) - .map_err(Error::Serialization); - } - RawResponse::Blob(ref b) if b == b"OK" => { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.08s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.47s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... FAILED -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... FAILED -test proto::single::resp::test::it_decodes_string_json ... FAILED -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_decodes_json_ok_string stdout ---- -thread 'proto::single::resp::test::it_decodes_json_ok_string' panicked at src/proto/single/resp.rs:349:39: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- proto::single::resp::test::it_errors_on_bad_json_string stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_string' panicked at src/proto/single/resp.rs:399:63: -called `Result::unwrap_err()` on an `Ok` value: None - ----- proto::single::resp::test::it_decodes_string_json stdout ---- -thread 'proto::single::resp::test::it_decodes_string_json' panicked at src/proto/single/resp.rs:375:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - proto::single::resp::test::it_decodes_json_ok_string - proto::single::resp::test::it_decodes_string_json - proto::single::resp::test::it_errors_on_bad_json_string - -test result: FAILED. 32 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_47_col_39.log b/mutants.out/log/src__proto__single__resp.rs_line_47_col_39.log deleted file mode 100644 index 6f27ab88..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_47_col_39.log +++ /dev/null @@ -1,103 +0,0 @@ - -*** src/proto/single/resp.rs:47:39: replace == with != in read_json - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace == with != in read_json -@@ -39,17 +39,17 @@ - RawResponse::String(ref s) if s == "OK" => { - return Ok(None); - } - RawResponse::String(ref s) => { - return serde_json::from_str(s) - .map(Some) - .map_err(Error::Serialization); - } -- RawResponse::Blob(ref b) if b == b"OK" => { -+ RawResponse::Blob(ref b) if b != /* ~ changed by cargo-mutants ~ */ b"OK" => { - return Ok(None); - } - RawResponse::Blob(ref b) => { - if b.is_empty() { - return Ok(None); - } - return serde_json::from_slice(b) - .map(Some) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.18s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.57s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... FAILED -test proto::single::resp::test::it_decodes_json_ok_blob ... FAILED -test proto::single::resp::test::it_decodes_blob_json ... FAILED -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::resp::test::it_errors_on_bad_json_blob stdout ---- -thread 'proto::single::resp::test::it_errors_on_bad_json_blob' panicked at src/proto/single/resp.rs:389:63: -called `Result::unwrap_err()` on an `Ok` value: None -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- proto::single::resp::test::it_decodes_json_ok_blob stdout ---- -thread 'proto::single::resp::test::it_decodes_json_ok_blob' panicked at src/proto/single/resp.rs:355:39: -called `Result::unwrap()` on an `Err` value: Serialization(Error("expected value", line: 1, column: 1)) - ----- proto::single::resp::test::it_decodes_blob_json stdout ---- -thread 'proto::single::resp::test::it_decodes_blob_json' panicked at src/proto/single/resp.rs:383:9: -assertion `left == right` failed - left: None - right: Some(Object {"hello": Number(1)}) - - -failures: - proto::single::resp::test::it_decodes_blob_json - proto::single::resp::test::it_decodes_json_ok_blob - proto::single::resp::test::it_errors_on_bad_json_blob - -test result: FAILED. 32 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_69_col_5.log b/mutants.out/log/src__proto__single__resp.rs_line_69_col_5.log deleted file mode 100644 index bd9a65d1..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_69_col_5.log +++ /dev/null @@ -1,155 +0,0 @@ - -*** src/proto/single/resp.rs:69:5: replace read_bid -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_bid -> Result with Ok(Default::default()) -@@ -61,30 +61,17 @@ - - Err(bad("json", &rr).into()) - } - - // ---------------------------------------------- - - #[cfg(feature = "ent")] - pub async fn read_bid(r: R) -> Result { -- match read(r).await? { -- RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { -- expected: "non-empty blob representation of batch id", -- received: "empty blob".into(), -- } -- .into()), -- RawResponse::Blob(ref b) => Ok(std::str::from_utf8(b) -- .map_err(|_| error::Protocol::BadType { -- expected: "valid blob representation of batch id", -- received: "unprocessable blob".into(), -- })? -- .into()), -- something_else => Err(bad("id", &something_else).into()), -- } -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - #[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] - pub struct Hi { - #[serde(rename = "v")] - pub version: usize, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.20s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.82s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.19s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test hello ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::hello_worker ... ok -test community::multi ... ok -test community::queue ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__resp.rs_line_8_col_5.log b/mutants.out/log/src__proto__single__resp.rs_line_8_col_5.log deleted file mode 100644 index 38f8c5f4..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_8_col_5.log +++ /dev/null @@ -1,61 +0,0 @@ - -*** src/proto/single/resp.rs:8:5: replace bad -> error::Protocol with Default::default() - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace bad -> error::Protocol with Default::default() -@@ -1,37 +1,16 @@ - #[cfg(feature = "ent")] - use crate::ent::BatchId; - - use crate::error::{self, Error}; - use tokio::io::{AsyncBufReadExt, AsyncReadExt}; - - pub fn bad(expected: &'static str, got: &RawResponse) -> error::Protocol { -- let stringy = match *got { -- RawResponse::String(ref s) => Some(&**s), -- RawResponse::Blob(ref b) => { -- if let Ok(s) = std::str::from_utf8(b) { -- Some(s) -- } else { -- None -- } -- } -- _ => None, -- }; -- -- match stringy { -- Some(s) => error::Protocol::BadType { -- expected, -- received: s.to_string(), -- }, -- None => error::Protocol::BadType { -- expected, -- received: format!("{:?}", got), -- }, -- } -+ Default::default() /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - pub async fn read_json( - r: R, - ) -> Result, Error> { - let rr = read(r).await?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Protocol: Default` is not satisfied - --> src/proto/single/resp.rs:8:5 - | -8 | Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Protocol` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__resp.rs_line_98_col_5.log b/mutants.out/log/src__proto__single__resp.rs_line_98_col_5.log deleted file mode 100644 index 3e2c70e3..00000000 --- a/mutants.out/log/src__proto__single__resp.rs_line_98_col_5.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/single/resp.rs:98:5: replace read_hi -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/single/resp.rs -+++ replace read_hi -> Result with Ok(Default::default()) -@@ -90,23 +90,17 @@ - pub version: usize, - #[serde(rename = "i")] - pub iterations: Option, - #[serde(rename = "s")] - pub salt: Option, - } - - pub async fn read_hi(r: R) -> Result { -- let rr = read(r).await?; -- if let RawResponse::String(ref s) = rr { -- if let Some(s) = s.strip_prefix("HI ") { -- return serde_json::from_str(s).map_err(Error::Serialization); -- } -- } -- Err(bad("server hi", &rr).into()) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - // ---------------------------------------------- - - pub async fn read_ok(r: R) -> Result<(), Error> { - let rr = read(r).await?; - if let RawResponse::String(ref s) = rr { - if s == "OK" { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Hi: Default` is not satisfied - --> src/proto/single/resp.rs:98:8 - | -98 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Hi` - | -help: consider annotating `Hi` with `#[derive(Default)]` - | -88 + #[derive(Default)] -89 | pub struct Hi { - | - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__utils.rs_line_15_col_5.log b/mutants.out/log/src__proto__single__utils.rs_line_15_col_5.log deleted file mode 100644 index d8699baf..00000000 --- a/mutants.out/log/src__proto__single__utils.rs_line_15_col_5.log +++ /dev/null @@ -1,97 +0,0 @@ - -*** src/proto/single/utils.rs:15:5: replace gen_random_jid -> String with String::new() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_jid -> String with String::new() -@@ -7,17 +7,17 @@ - thread_rng() - .sample_iter(&rand::distributions::Alphanumeric) - .map(char::from) - .take(length) - .collect() - } - - pub(crate) fn gen_random_jid() -> String { -- gen_random_id(JOB_ID_LENGTH) -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn gen_random_wid() -> String { - gen_random_id(WORKER_ID_LENGTH) - } - - #[cfg(test)] - mod test { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.12s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.66s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... FAILED -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::test::test_job_can_be_created_with_builder stdout ---- -thread 'proto::single::test::test_job_can_be_created_with_builder' panicked at src/proto/single/mod.rs:292:9: -assertion failed: job.jid != "".into() - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("") - right: JobId("") - - -failures: - proto::single::test::test_all_job_creation_variants_align - proto::single::test::test_job_can_be_created_with_builder - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.24s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__utils.rs_line_15_col_5_001.log b/mutants.out/log/src__proto__single__utils.rs_line_15_col_5_001.log deleted file mode 100644 index 69b90053..00000000 --- a/mutants.out/log/src__proto__single__utils.rs_line_15_col_5_001.log +++ /dev/null @@ -1,92 +0,0 @@ - -*** src/proto/single/utils.rs:15:5: replace gen_random_jid -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_jid -> String with "xyzzy".into() -@@ -7,17 +7,17 @@ - thread_rng() - .sample_iter(&rand::distributions::Alphanumeric) - .map(char::from) - .take(length) - .collect() - } - - pub(crate) fn gen_random_jid() -> String { -- gen_random_id(JOB_ID_LENGTH) -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn gen_random_wid() -> String { - gen_random_id(WORKER_ID_LENGTH) - } - - #[cfg(test)] - mod test { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.36s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("xyzzy") - right: JobId("xyzzy") - - -failures: - proto::single::test::test_all_job_creation_variants_align - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.51s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__utils.rs_line_19_col_5.log b/mutants.out/log/src__proto__single__utils.rs_line_19_col_5.log deleted file mode 100644 index 885d4741..00000000 --- a/mutants.out/log/src__proto__single__utils.rs_line_19_col_5.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/utils.rs:19:5: replace gen_random_wid -> String with String::new() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_wid -> String with String::new() -@@ -11,17 +11,17 @@ - .collect() - } - - pub(crate) fn gen_random_jid() -> String { - gen_random_id(JOB_ID_LENGTH) - } - - pub(crate) fn gen_random_wid() -> String { -- gen_random_id(WORKER_ID_LENGTH) -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - #[cfg(test)] - mod test { - use super::*; - use std::collections::HashSet; - - #[test] - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.89s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.25s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.16s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::queue ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::fail ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::roundtrip ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__utils.rs_line_19_col_5_001.log b/mutants.out/log/src__proto__single__utils.rs_line_19_col_5_001.log deleted file mode 100644 index d8556c6e..00000000 --- a/mutants.out/log/src__proto__single__utils.rs_line_19_col_5_001.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/single/utils.rs:19:5: replace gen_random_wid -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_wid -> String with "xyzzy".into() -@@ -11,17 +11,17 @@ - .collect() - } - - pub(crate) fn gen_random_jid() -> String { - gen_random_id(JOB_ID_LENGTH) - } - - pub(crate) fn gen_random_wid() -> String { -- gen_random_id(WORKER_ID_LENGTH) -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - #[cfg(test)] - mod test { - use super::*; - use std::collections::HashSet; - - #[test] - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.87s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.28s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.63s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test enqueue ... ok -test queue_control ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job ... ok -test community::roundtrip ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::multi ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::queue ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::fail ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_worker ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__single__utils.rs_line_7_col_5.log b/mutants.out/log/src__proto__single__utils.rs_line_7_col_5.log deleted file mode 100644 index 30e440d8..00000000 --- a/mutants.out/log/src__proto__single__utils.rs_line_7_col_5.log +++ /dev/null @@ -1,113 +0,0 @@ - -*** src/proto/single/utils.rs:7:5: replace gen_random_id -> String with String::new() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_id -> String with String::new() -@@ -1,19 +1,15 @@ - use rand::{thread_rng, Rng}; - - const JOB_ID_LENGTH: usize = 16; - const WORKER_ID_LENGTH: usize = 32; - - fn gen_random_id(length: usize) -> String { -- thread_rng() -- .sample_iter(&rand::distributions::Alphanumeric) -- .map(char::from) -- .take(length) -- .collect() -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn gen_random_jid() -> String { - gen_random_id(JOB_ID_LENGTH) - } - - pub(crate) fn gen_random_wid() -> String { - gen_random_id(WORKER_ID_LENGTH) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.97s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.31s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... FAILED -test proto::single::test::test_job_can_be_created_with_builder ... FAILED -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_ids_are_unique ... FAILED - -failures: - ----- proto::single::utils::test::test_id_of_known_size_generated stdout ---- -thread 'proto::single::utils::test::test_id_of_known_size_generated' panicked at src/proto/single/utils.rs:27:9: -assertion `left != right` failed - left: "" - right: "" - ----- proto::single::test::test_job_can_be_created_with_builder stdout ---- -thread 'proto::single::test::test_job_can_be_created_with_builder' panicked at src/proto/single/mod.rs:292:9: -assertion failed: job.jid != "".into() - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("") - right: JobId("") - ----- proto::single::utils::test::test_ids_are_unique stdout ---- -thread 'proto::single::utils::test::test_ids_are_unique' panicked at src/proto/single/utils.rs:46:9: -assertion `left == right` failed - left: 1 - right: 1000000 - - -failures: - proto::single::test::test_all_job_creation_variants_align - proto::single::test::test_job_can_be_created_with_builder - proto::single::utils::test::test_id_of_known_size_generated - proto::single::utils::test::test_ids_are_unique - -test result: FAILED. 31 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__single__utils.rs_line_7_col_5_001.log b/mutants.out/log/src__proto__single__utils.rs_line_7_col_5_001.log deleted file mode 100644 index d85625ee..00000000 --- a/mutants.out/log/src__proto__single__utils.rs_line_7_col_5_001.log +++ /dev/null @@ -1,108 +0,0 @@ - -*** src/proto/single/utils.rs:7:5: replace gen_random_id -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/single/utils.rs -+++ replace gen_random_id -> String with "xyzzy".into() -@@ -1,19 +1,15 @@ - use rand::{thread_rng, Rng}; - - const JOB_ID_LENGTH: usize = 16; - const WORKER_ID_LENGTH: usize = 32; - - fn gen_random_id(length: usize) -> String { -- thread_rng() -- .sample_iter(&rand::distributions::Alphanumeric) -- .map(char::from) -- .take(length) -- .collect() -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn gen_random_jid() -> String { - gen_random_id(JOB_ID_LENGTH) - } - - pub(crate) fn gen_random_wid() -> String { - gen_random_id(WORKER_ID_LENGTH) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.88s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.33s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... FAILED -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... FAILED -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... FAILED - -failures: - ----- proto::single::test::test_all_job_creation_variants_align stdout ---- -thread 'proto::single::test::test_all_job_creation_variants_align' panicked at src/proto/single/mod.rs:337:9: -assertion `left != right` failed - left: JobId("xyzzy") - right: JobId("xyzzy") - ----- proto::single::utils::test::test_id_of_known_size_generated stdout ---- -thread 'proto::single::utils::test::test_id_of_known_size_generated' panicked at src/proto/single/utils.rs:27:9: -assertion `left != right` failed - left: "xyzzy" - right: "xyzzy" - ----- proto::single::utils::test::test_ids_are_unique stdout ---- -thread 'proto::single::utils::test::test_ids_are_unique' panicked at src/proto/single/utils.rs:46:9: -assertion `left == right` failed - left: 1 - right: 1000000 - - -failures: - proto::single::test::test_all_job_creation_variants_align - proto::single::utils::test::test_id_of_known_size_generated - proto::single::utils::test::test_ids_are_unique - -test result: FAILED. 32 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__utils.rs_line_11_col_5.log b/mutants.out/log/src__proto__utils.rs_line_11_col_5.log deleted file mode 100644 index bf1859a7..00000000 --- a/mutants.out/log/src__proto__utils.rs_line_11_col_5.log +++ /dev/null @@ -1,92 +0,0 @@ - -*** src/proto/utils.rs:11:5: replace host_from_url -> String with String::new() - -*** mutation diff: ---- src/proto/utils.rs -+++ replace host_from_url -> String with String::new() -@@ -3,17 +3,17 @@ - - pub(crate) fn get_env_url() -> String { - use std::env; - let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); - env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) - } - - pub(crate) fn host_from_url(url: &Url) -> String { -- format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - if url.scheme() != "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.15s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.40s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... FAILED -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::url_port_default stdout ---- -thread 'proto::utils::tests::url_port_default' panicked at src/proto/utils.rs:61:9: -assertion `left == right` failed - left: "" - right: "example.com:7419" - - -failures: - proto::utils::tests::url_port_default - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__utils.rs_line_11_col_5_001.log b/mutants.out/log/src__proto__utils.rs_line_11_col_5_001.log deleted file mode 100644 index 746cdb3a..00000000 --- a/mutants.out/log/src__proto__utils.rs_line_11_col_5_001.log +++ /dev/null @@ -1,92 +0,0 @@ - -*** src/proto/utils.rs:11:5: replace host_from_url -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/utils.rs -+++ replace host_from_url -> String with "xyzzy".into() -@@ -3,17 +3,17 @@ - - pub(crate) fn get_env_url() -> String { - use std::env; - let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); - env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) - } - - pub(crate) fn host_from_url(url: &Url) -> String { -- format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - if url.scheme() != "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.88s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.15s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... FAILED -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::url_port_default stdout ---- -thread 'proto::utils::tests::url_port_default' panicked at src/proto/utils.rs:61:9: -assertion `left == right` failed - left: "xyzzy" - right: "example.com:7419" - - -failures: - proto::utils::tests::url_port_default - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__utils.rs_line_15_col_5.log b/mutants.out/log/src__proto__utils.rs_line_15_col_5.log deleted file mode 100644 index 0e42808c..00000000 --- a/mutants.out/log/src__proto__utils.rs_line_15_col_5.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/proto/utils.rs:15:5: replace url_parse -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/utils.rs -+++ replace url_parse -> Result with Ok(Default::default()) -@@ -7,29 +7,17 @@ - env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) - } - - pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) - } - - pub(crate) fn url_parse(url: &str) -> Result { -- let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; -- if url.scheme() != "tcp" { -- return Err(error::Connect::BadScheme { -- scheme: url.scheme().to_string(), -- } -- .into()); -- } -- -- if url.host_str().is_none() || url.host_str().unwrap().is_empty() { -- return Err(error::Connect::MissingHostname.into()); -- } -- -- Ok(url) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn parse_provided_or_from_env(url: Option<&str>) -> Result { - url_parse(url.unwrap_or(&get_env_url())) - } - - #[cfg(test)] - mod tests { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Url: Default` is not satisfied - --> src/proto/utils.rs:15:8 - | -15 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Url` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__utils.rs_line_16_col_21.log b/mutants.out/log/src__proto__utils.rs_line_16_col_21.log deleted file mode 100644 index 52ccd3a4..00000000 --- a/mutants.out/log/src__proto__utils.rs_line_16_col_21.log +++ /dev/null @@ -1,95 +0,0 @@ - -*** src/proto/utils.rs:16:21: replace != with == in url_parse - -*** mutation diff: ---- src/proto/utils.rs -+++ replace != with == in url_parse -@@ -8,17 +8,17 @@ - } - - pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; -- if url.scheme() != "tcp" { -+ if url.scheme() == /* ~ changed by cargo-mutants ~ */ "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - .into()); - } - - if url.host_str().is_none() || url.host_str().unwrap().is_empty() { - return Err(error::Connect::MissingHostname.into()); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.87s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.42s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_doesnt_require_port ... FAILED -test proto::utils::tests::url_can_take_password_and_port ... FAILED -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::url_doesnt_require_port stdout ---- -thread 'proto::utils::tests::url_doesnt_require_port' panicked at src/proto/utils.rs:76:40: -called `Result::unwrap()` on an `Err` value: Connect(BadScheme { scheme: "tcp" }) - ----- proto::utils::tests::url_can_take_password_and_port stdout ---- -thread 'proto::utils::tests::url_can_take_password_and_port' panicked at src/proto/utils.rs:81:53: -called `Result::unwrap()` on an `Err` value: Connect(BadScheme { scheme: "tcp" }) - - -failures: - proto::utils::tests::url_can_take_password_and_port - proto::utils::tests::url_doesnt_require_port - -test result: FAILED. 33 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__utils.rs_line_23_col_33.log b/mutants.out/log/src__proto__utils.rs_line_23_col_33.log deleted file mode 100644 index b1b03927..00000000 --- a/mutants.out/log/src__proto__utils.rs_line_23_col_33.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/proto/utils.rs:23:33: replace || with && in url_parse - -*** mutation diff: ---- src/proto/utils.rs -+++ replace || with && in url_parse -@@ -15,17 +15,17 @@ - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - if url.scheme() != "tcp" { - return Err(error::Connect::BadScheme { - scheme: url.scheme().to_string(), - } - .into()); - } - -- if url.host_str().is_none() || url.host_str().unwrap().is_empty() { -+ if url.host_str().is_none() && /* ~ changed by cargo-mutants ~ */ url.host_str().unwrap().is_empty() { - return Err(error::Connect::MissingHostname.into()); - } - - Ok(url) - } - - pub(crate) fn parse_provided_or_from_env(url: Option<&str>) -> Result { - url_parse(url.unwrap_or(&get_env_url())) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.75s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.12s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test community::enqueue_job ... ok -test community::roundtrip ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test community::multi ... ok -test community::hello_worker ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_unique_job_until_start ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__proto__utils.rs_line_31_col_5.log b/mutants.out/log/src__proto__utils.rs_line_31_col_5.log deleted file mode 100644 index e427f4e9..00000000 --- a/mutants.out/log/src__proto__utils.rs_line_31_col_5.log +++ /dev/null @@ -1,41 +0,0 @@ - -*** src/proto/utils.rs:31:5: replace parse_provided_or_from_env -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/proto/utils.rs -+++ replace parse_provided_or_from_env -> Result with Ok(Default::default()) -@@ -23,17 +23,17 @@ - if url.host_str().is_none() || url.host_str().unwrap().is_empty() { - return Err(error::Connect::MissingHostname.into()); - } - - Ok(url) - } - - pub(crate) fn parse_provided_or_from_env(url: Option<&str>) -> Result { -- url_parse(url.unwrap_or(&get_env_url())) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - #[cfg(test)] - mod tests { - use super::*; - - #[test] - fn correct_env_parsing() { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Url: Default` is not satisfied - --> src/proto/utils.rs:31:8 - | -31 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Url` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__utils.rs_line_5_col_5.log b/mutants.out/log/src__proto__utils.rs_line_5_col_5.log deleted file mode 100644 index 50b92f11..00000000 --- a/mutants.out/log/src__proto__utils.rs_line_5_col_5.log +++ /dev/null @@ -1,90 +0,0 @@ - -*** src/proto/utils.rs:5:5: replace get_env_url -> String with String::new() - -*** mutation diff: ---- src/proto/utils.rs -+++ replace get_env_url -> String with String::new() -@@ -1,15 +1,13 @@ - use crate::error::{self, Error}; - use url::Url; - - pub(crate) fn get_env_url() -> String { -- use std::env; -- let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); -- env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) -+ String::new() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.61s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::correct_env_parsing ... FAILED -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::correct_env_parsing stdout ---- -thread 'proto::utils::tests::correct_env_parsing' panicked at src/proto/utils.rs:45:9: -assertion `left == right` failed - left: "" - right: "tcp://localhost:7419" - - -failures: - proto::utils::tests::correct_env_parsing - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.09s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__proto__utils.rs_line_5_col_5_001.log b/mutants.out/log/src__proto__utils.rs_line_5_col_5_001.log deleted file mode 100644 index a3fc66c3..00000000 --- a/mutants.out/log/src__proto__utils.rs_line_5_col_5_001.log +++ /dev/null @@ -1,90 +0,0 @@ - -*** src/proto/utils.rs:5:5: replace get_env_url -> String with "xyzzy".into() - -*** mutation diff: ---- src/proto/utils.rs -+++ replace get_env_url -> String with "xyzzy".into() -@@ -1,15 +1,13 @@ - use crate::error::{self, Error}; - use url::Url; - - pub(crate) fn get_env_url() -> String { -- use std::env; -- let var = env::var("FAKTORY_PROVIDER").unwrap_or_else(|_| "FAKTORY_URL".to_string()); -- env::var(var).unwrap_or_else(|_| "tcp://localhost:7419".to_string()) -+ "xyzzy".into() /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn host_from_url(url: &Url) -> String { - format!("{}:{}", url.host_str().unwrap(), url.port().unwrap_or(7419)) - } - - pub(crate) fn url_parse(url: &str) -> Result { - let url = Url::parse(url).map_err(error::Connect::ParseUrl)?; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.97s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.64s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... FAILED -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -failures: - ----- proto::utils::tests::correct_env_parsing stdout ---- -thread 'proto::utils::tests::correct_env_parsing' panicked at src/proto/utils.rs:45:9: -assertion `left == right` failed - left: "xyzzy" - right: "tcp://localhost:7419" - - -failures: - proto::utils::tests::correct_env_parsing - -test result: FAILED. 34 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - -error: test failed, to rerun pass `--lib` - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_116_col_9.log b/mutants.out/log/src__tls.rs_line_116_col_9.log deleted file mode 100644 index 8c1620ad..00000000 --- a/mutants.out/log/src__tls.rs_line_116_col_9.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/tls.rs:116:9: replace >::reconnect -> io::Result with Ok(Default::default()) - -*** mutation diff: ---- src/tls.rs -+++ replace >::reconnect -> io::Result with Ok(Default::default()) -@@ -108,24 +108,17 @@ - } - - #[async_trait::async_trait] - impl Reconnect for TlsStream - where - S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static + Sync, - { - async fn reconnect(&mut self) -> io::Result { -- let stream = self -- .stream -- .get_mut() -- .get_mut() -- .get_mut() -- .reconnect() -- .await?; -- Self::new(stream, self.connector.clone(), &self.hostname).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Deref for TlsStream { - type Target = NativeTlsStream; - fn deref(&self) -> &Self::Target { - &self.stream - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.11s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `tls::TlsStream: Default` is not satisfied - --> src/tls.rs:116:12 - | -116 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_130_col_9.log b/mutants.out/log/src__tls.rs_line_130_col_9.log deleted file mode 100644 index b9e2db50..00000000 --- a/mutants.out/log/src__tls.rs_line_130_col_9.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/tls.rs:130:9: replace >::deref -> &Self::Target with &Default::default() - -*** mutation diff: ---- src/tls.rs -+++ replace >::deref -> &Self::Target with &Default::default() -@@ -122,17 +122,17 @@ - .await?; - Self::new(stream, self.connector.clone(), &self.hostname).await - } - } - - impl Deref for TlsStream { - type Target = NativeTlsStream; - fn deref(&self) -> &Self::Target { -- &self.stream -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl DerefMut for TlsStream { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.stream - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.95s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `tokio_native_tls::TlsStream: Default` is not satisfied - --> src/tls.rs:130:10 - | -130 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tokio_native_tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_136_col_9.log b/mutants.out/log/src__tls.rs_line_136_col_9.log deleted file mode 100644 index 364c3aab..00000000 --- a/mutants.out/log/src__tls.rs_line_136_col_9.log +++ /dev/null @@ -1,46 +0,0 @@ - -*** src/tls.rs:136:9: replace >::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) -@@ -128,17 +128,17 @@ - type Target = NativeTlsStream; - fn deref(&self) -> &Self::Target { - &self.stream - } - } - - impl DerefMut for TlsStream { - fn deref_mut(&mut self) -> &mut Self::Target { -- &mut self.stream -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `tokio_native_tls::TlsStream: Default` is not satisfied - --> src/tls.rs:136:28 - | -136 | Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tokio_native_tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_146_col_9.log b/mutants.out/log/src__tls.rs_line_146_col_9.log deleted file mode 100644 index 6cb4a90d..00000000 --- a/mutants.out/log/src__tls.rs_line_146_col_9.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::new(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_read -> std::task::Poll> with Poll::new(Ok(())) -@@ -138,17 +138,17 @@ - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_read(cx, buf) -+ Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.10s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:146:9 - | -146 | Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_146_col_9_001.log b/mutants.out/log/src__tls.rs_line_146_col_9_001.log deleted file mode 100644 index 9d5aec14..00000000 --- a/mutants.out/log/src__tls.rs_line_146_col_9_001.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::new() - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_read -> std::task::Poll> with Poll::new() -@@ -138,17 +138,17 @@ - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_read(cx, buf) -+ Poll::new() /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.92s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:146:9 - | -146 | Poll::new() /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_146_col_9_002.log b/mutants.out/log/src__tls.rs_line_146_col_9_002.log deleted file mode 100644 index e781ce30..00000000 --- a/mutants.out/log/src__tls.rs_line_146_col_9_002.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::from(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_read -> std::task::Poll> with Poll::from(Ok(())) -@@ -138,17 +138,17 @@ - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_read(cx, buf) -+ Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.74s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:146:9 - | -146 | Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_146_col_9_003.log b/mutants.out/log/src__tls.rs_line_146_col_9_003.log deleted file mode 100644 index 3b33a356..00000000 --- a/mutants.out/log/src__tls.rs_line_146_col_9_003.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:146:9: replace >::poll_read -> std::task::Poll> with Poll::from_iter([Ok(())]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_read -> std::task::Poll> with Poll::from_iter([Ok(())]) -@@ -138,17 +138,17 @@ - } - - impl AsyncRead for TlsStream { - fn poll_read( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &mut tokio::io::ReadBuf<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_read(cx, buf) -+ Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - } - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.99s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:146:9 - | -146 | Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_156_col_9.log b/mutants.out/log/src__tls.rs_line_156_col_9.log deleted file mode 100644 index 8c68701b..00000000 --- a/mutants.out/log/src__tls.rs_line_156_col_9.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from(Ok(1)) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::from(Ok(1)) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::from(Ok(1)) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.08s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::from(Ok(1)) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_156_col_9_001.log b/mutants.out/log/src__tls.rs_line_156_col_9_001.log deleted file mode 100644 index d1e3c181..00000000 --- a/mutants.out/log/src__tls.rs_line_156_col_9_001.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(1)]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(1)]) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::from_iter([Ok(1)]) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.06s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::from_iter([Ok(1)]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_156_col_9_002.log b/mutants.out/log/src__tls.rs_line_156_col_9_002.log deleted file mode 100644 index 372dd555..00000000 --- a/mutants.out/log/src__tls.rs_line_156_col_9_002.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new() - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::new() -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::new() /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.87s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::new() /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_156_col_9_003.log b/mutants.out/log/src__tls.rs_line_156_col_9_003.log deleted file mode 100644 index 493f0287..00000000 --- a/mutants.out/log/src__tls.rs_line_156_col_9_003.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new(Ok(0)) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::new(Ok(0)) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::new(Ok(0)) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.93s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::new(Ok(0)) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_156_col_9_004.log b/mutants.out/log/src__tls.rs_line_156_col_9_004.log deleted file mode 100644 index 739dae62..00000000 --- a/mutants.out/log/src__tls.rs_line_156_col_9_004.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(0)]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::from_iter([Ok(0)]) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::from_iter([Ok(0)]) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::from_iter([Ok(0)]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_156_col_9_005.log b/mutants.out/log/src__tls.rs_line_156_col_9_005.log deleted file mode 100644 index e9365a1f..00000000 --- a/mutants.out/log/src__tls.rs_line_156_col_9_005.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::new(Ok(1)) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::new(Ok(1)) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::new(Ok(1)) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.11s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::new(Ok(1)) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_156_col_9_006.log b/mutants.out/log/src__tls.rs_line_156_col_9_006.log deleted file mode 100644 index 4d287b68..00000000 --- a/mutants.out/log/src__tls.rs_line_156_col_9_006.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:156:9: replace >::poll_write -> std::task::Poll> with Poll::from(Ok(0)) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_write -> std::task::Poll> with Poll::from(Ok(0)) -@@ -148,17 +148,17 @@ - } - - impl AsyncWrite for TlsStream { - fn poll_write( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - buf: &[u8], - ) -> std::task::Poll> { -- self.project().stream.poll_write(cx, buf) -+ Poll::from(Ok(0)) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.96s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:156:9 - | -156 | Poll::from(Ok(0)) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_163_col_9.log b/mutants.out/log/src__tls.rs_line_163_col_9.log deleted file mode 100644 index a031b80e..00000000 --- a/mutants.out/log/src__tls.rs_line_163_col_9.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::from_iter([Ok(())]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_flush -> std::task::Poll> with Poll::from_iter([Ok(())]) -@@ -155,17 +155,17 @@ - ) -> std::task::Poll> { - self.project().stream.poll_write(cx, buf) - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_flush(cx) -+ Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_shutdown(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.98s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:163:9 - | -163 | Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_163_col_9_001.log b/mutants.out/log/src__tls.rs_line_163_col_9_001.log deleted file mode 100644 index 33003f51..00000000 --- a/mutants.out/log/src__tls.rs_line_163_col_9_001.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::from(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_flush -> std::task::Poll> with Poll::from(Ok(())) -@@ -155,17 +155,17 @@ - ) -> std::task::Poll> { - self.project().stream.poll_write(cx, buf) - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_flush(cx) -+ Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_shutdown(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:163:9 - | -163 | Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_163_col_9_002.log b/mutants.out/log/src__tls.rs_line_163_col_9_002.log deleted file mode 100644 index 4f760cc9..00000000 --- a/mutants.out/log/src__tls.rs_line_163_col_9_002.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::new() - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_flush -> std::task::Poll> with Poll::new() -@@ -155,17 +155,17 @@ - ) -> std::task::Poll> { - self.project().stream.poll_write(cx, buf) - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_flush(cx) -+ Poll::new() /* ~ changed by cargo-mutants ~ */ - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_shutdown(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:163:9 - | -163 | Poll::new() /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_163_col_9_003.log b/mutants.out/log/src__tls.rs_line_163_col_9_003.log deleted file mode 100644 index 4bb0cb96..00000000 --- a/mutants.out/log/src__tls.rs_line_163_col_9_003.log +++ /dev/null @@ -1,54 +0,0 @@ - -*** src/tls.rs:163:9: replace >::poll_flush -> std::task::Poll> with Poll::new(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_flush -> std::task::Poll> with Poll::new(Ok(())) -@@ -155,17 +155,17 @@ - ) -> std::task::Poll> { - self.project().stream.poll_write(cx, buf) - } - - fn poll_flush( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_flush(cx) -+ Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - self.project().stream.poll_shutdown(cx) - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.78s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:163:9 - | -163 | Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_170_col_9.log b/mutants.out/log/src__tls.rs_line_170_col_9.log deleted file mode 100644 index e9b3668a..00000000 --- a/mutants.out/log/src__tls.rs_line_170_col_9.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::from(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_shutdown -> std::task::Poll> with Poll::from(Ok(())) -@@ -162,11 +162,11 @@ - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_shutdown(cx) -+ Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:170:9 - | -170 | Poll::from(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_170_col_9_001.log b/mutants.out/log/src__tls.rs_line_170_col_9_001.log deleted file mode 100644 index 82ff1dca..00000000 --- a/mutants.out/log/src__tls.rs_line_170_col_9_001.log +++ /dev/null @@ -1,47 +0,0 @@ - -*** src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::new(Ok(())) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_shutdown -> std::task::Poll> with Poll::new(Ok(())) -@@ -162,11 +162,11 @@ - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_shutdown(cx) -+ Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Finished dev [unoptimized + debuginfo] target(s) in 0.05s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:170:9 - | -170 | Poll::new(Ok(())) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_170_col_9_002.log b/mutants.out/log/src__tls.rs_line_170_col_9_002.log deleted file mode 100644 index bd1036ed..00000000 --- a/mutants.out/log/src__tls.rs_line_170_col_9_002.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::new() - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_shutdown -> std::task::Poll> with Poll::new() -@@ -162,11 +162,11 @@ - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_shutdown(cx) -+ Poll::new() /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.84s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:170:9 - | -170 | Poll::new() /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_170_col_9_003.log b/mutants.out/log/src__tls.rs_line_170_col_9_003.log deleted file mode 100644 index b2e8ca47..00000000 --- a/mutants.out/log/src__tls.rs_line_170_col_9_003.log +++ /dev/null @@ -1,48 +0,0 @@ - -*** src/tls.rs:170:9: replace >::poll_shutdown -> std::task::Poll> with Poll::from_iter([Ok(())]) - -*** mutation diff: ---- src/tls.rs -+++ replace >::poll_shutdown -> std::task::Poll> with Poll::from_iter([Ok(())]) -@@ -162,11 +162,11 @@ - ) -> std::task::Poll> { - self.project().stream.poll_flush(cx) - } - - fn poll_shutdown( - self: std::pin::Pin<&mut Self>, - cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { -- self.project().stream.poll_shutdown(cx) -+ Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.97s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0433]: failed to resolve: use of undeclared type `Poll` - --> src/tls.rs:170:9 - | -170 | Poll::from_iter([Ok(())]) /* ~ changed by cargo-mutants ~ */ - | ^^^^ use of undeclared type `Poll` - | -help: consider importing one of these items - | -4 + use core::task::Poll; - | -4 + use std::task::Poll; - | - -For more information about this error, try `rustc --explain E0433`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_52_col_9.log b/mutants.out/log/src__tls.rs_line_52_col_9.log deleted file mode 100644 index 0d0875cd..00000000 --- a/mutants.out/log/src__tls.rs_line_52_col_9.log +++ /dev/null @@ -1,51 +0,0 @@ - -*** src/tls.rs:52:9: replace TlsStream::connect -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/tls.rs -+++ replace TlsStream::connect -> Result with Ok(Default::default()) -@@ -44,21 +44,17 @@ - /// made to - /// - /// ```text - /// tcp://localhost:7419 - /// ``` - /// - /// If `url` is given, but does not specify a port, it defaults to 7419. - pub async fn connect(url: Option<&str>) -> Result { -- TlsStream::with_connector( -- TlsConnector::builder().build().map_err(Error::TlsStream)?, -- url, -- ) -- .await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new TLS connection over TCP using a non-default TLS configuration. - /// - /// See `connect` for details about the `url` parameter. - pub async fn with_connector(connector: TlsConnector, url: Option<&str>) -> Result { - let url = match url { - Some(url) => utils::url_parse(url), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.84s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `tls::TlsStream: Default` is not satisfied - --> src/tls.rs:52:12 - | -52 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_63_col_9.log b/mutants.out/log/src__tls.rs_line_63_col_9.log deleted file mode 100644 index 626ae6f1..00000000 --- a/mutants.out/log/src__tls.rs_line_63_col_9.log +++ /dev/null @@ -1,53 +0,0 @@ - -*** src/tls.rs:63:9: replace TlsStream::with_connector -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/tls.rs -+++ replace TlsStream::with_connector -> Result with Ok(Default::default()) -@@ -55,23 +55,17 @@ - ) - .await - } - - /// Create a new TLS connection over TCP using a non-default TLS configuration. - /// - /// See `connect` for details about the `url` parameter. - pub async fn with_connector(connector: TlsConnector, url: Option<&str>) -> Result { -- let url = match url { -- Some(url) => utils::url_parse(url), -- None => utils::url_parse(&utils::get_env_url()), -- }?; -- let hostname = utils::host_from_url(&url); -- let tcp_stream = TokioTcpStream::connect(&hostname).await?; -- Ok(TlsStream::new(tcp_stream, connector, &hostname).await?) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl TlsStream - where - S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static, - { - /// Create a new TLS connection on an existing stream. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.00s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `tls::TlsStream: Default` is not satisfied - --> src/tls.rs:63:12 - | -63 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__tls.rs_line_83_col_9.log b/mutants.out/log/src__tls.rs_line_83_col_9.log deleted file mode 100644 index 5d182b23..00000000 --- a/mutants.out/log/src__tls.rs_line_83_col_9.log +++ /dev/null @@ -1,51 +0,0 @@ - -*** src/tls.rs:83:9: replace TlsStream::default -> io::Result with Ok(Default::default()) - -*** mutation diff: ---- src/tls.rs -+++ replace TlsStream::default -> io::Result with Ok(Default::default()) -@@ -75,21 +75,17 @@ - S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static, - { - /// Create a new TLS connection on an existing stream. - /// - /// Internally creates a `ClientConfig` with an empty root certificates store and no client - /// authentication. Use [`new`](TlsStream::new) for a customized `TlsConnector`. - /// Create a new TLS connection on an existing stream. - pub async fn default(stream: S, hostname: &str) -> io::Result { -- let connector = TlsConnector::builder() -- .build() -- .map_err(Error::TlsStream) -- .unwrap(); -- Self::new(stream, connector, hostname).await -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - /// Create a new TLS connection on an existing stream with a non-default TLS configuration. - pub async fn new( - stream: S, - connector: impl Into, - hostname: &str, - ) -> io::Result { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.86s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `tls::TlsStream: Default` is not satisfied - --> src/tls.rs:83:12 - | -83 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `tls::TlsStream` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__builder.rs_line_113_col_9.log b/mutants.out/log/src__worker__builder.rs_line_113_col_9.log deleted file mode 100644 index dfb896df..00000000 --- a/mutants.out/log/src__worker__builder.rs_line_113_col_9.log +++ /dev/null @@ -1,40 +0,0 @@ - -*** src/worker/builder.rs:113:9: replace WorkerBuilder::connect -> Result, E>, Error> with Ok(Default::default()) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::connect -> Result, E>, Error> with Ok(Default::default()) -@@ -105,16 +105,11 @@ - - /// Asynchronously connect to a Faktory server. - /// - /// See [`connect`](WorkerBuilder::connect). - pub async fn connect( - mut self, - url: Option<&str>, - ) -> Result, E>, Error> { -- let url = utils::parse_provided_or_from_env(url)?; -- let stream = TokioStream::connect(utils::host_from_url(&url)).await?; -- self.opts.is_worker = true; -- let buffered = BufStream::new(stream); -- let client = Client::new(buffered, self.opts).await?; -- Ok(Worker::new(client, self.workers_count, self.callbacks).await) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Worker, E>: Default` is not satisfied - --> src/worker/builder.rs:113:12 - | -113 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Worker, E>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__builder.rs_line_37_col_9.log b/mutants.out/log/src__worker__builder.rs_line_37_col_9.log deleted file mode 100644 index b95b0f21..00000000 --- a/mutants.out/log/src__worker__builder.rs_line_37_col_9.log +++ /dev/null @@ -1,114 +0,0 @@ - -*** src/worker/builder.rs:37:9: replace WorkerBuilder::hostname -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::hostname -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -29,18 +29,17 @@ - } - } - - impl WorkerBuilder { - /// Set the hostname to use for this worker. - /// - /// Defaults to the machine's hostname as reported by the operating system. - pub fn hostname(&mut self, hn: String) -> &mut Self { -- self.opts.hostname = Some(hn); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Set a unique identifier for this worker. - /// - /// Defaults to a randomly generated 32-char ASCII string. - pub fn wid(&mut self, wid: WorkerId) -> &mut Self { - self.opts.wid = Some(wid); - self - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.94s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.54s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... FAILED -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:20:5: -assertion `left == right` failed - left: Some("rustworthy") - right: Some("host") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - hello - -test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__builder.rs_line_45_col_9.log b/mutants.out/log/src__worker__builder.rs_line_45_col_9.log deleted file mode 100644 index 202b7b60..00000000 --- a/mutants.out/log/src__worker__builder.rs_line_45_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/worker/builder.rs:45:9: replace WorkerBuilder::wid -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::wid -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -37,18 +37,17 @@ - self.opts.hostname = Some(hn); - self - } - - /// Set a unique identifier for this worker. - /// - /// Defaults to a randomly generated 32-char ASCII string. - pub fn wid(&mut self, wid: WorkerId) -> &mut Self { -- self.opts.wid = Some(wid); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Set the labels to use for this worker. - /// - /// Defaults to `["rust"]`. - pub fn labels(&mut self, labels: Vec) -> &mut Self { - self.opts.labels = labels; - self - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.49s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 2.36s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... FAILED -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:24:5: -assertion `left == right` failed - left: Some("q6lWpCTRo57ozNjWw9yMFxwfNbVyJV0m") - right: Some("wid") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:5: -assertion `left == right` failed - left: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 79, 65, 49, 86, 81, 100, 76, 86, 122, 49, 102, 81] - right: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 70, 65, 73, 76, 32] - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"Db2LIvTEgAaMRhrnM500Dj89asdK4k7n\"}\r\nBEAT {\"wid\":\"Db2LIvTEgAaMRhrnM500Dj89asdK4k7n\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"W7MPNg1USu1SCaAKQE9dadqC2Nlp4eRx\"}\r\nBEAT {\"wid\":\"W7MPNg1USu1SCaAKQE9dadqC2Nlp4eRx\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"4sqYMcoch0OkR6IlOHFQS52VJn1tNs9n\"}\r\nBEAT {\"wid\":\"4sqYMcoch0OkR6IlOHFQS52VJn1tNs9n\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - hello - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__builder.rs_line_53_col_9.log b/mutants.out/log/src__worker__builder.rs_line_53_col_9.log deleted file mode 100644 index 46037f8c..00000000 --- a/mutants.out/log/src__worker__builder.rs_line_53_col_9.log +++ /dev/null @@ -1,114 +0,0 @@ - -*** src/worker/builder.rs:53:9: replace WorkerBuilder::labels -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::labels -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -45,18 +45,17 @@ - self.opts.wid = Some(wid); - self - } - - /// Set the labels to use for this worker. - /// - /// Defaults to `["rust"]`. - pub fn labels(&mut self, labels: Vec) -> &mut Self { -- self.opts.labels = labels; -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Set the number of workers to use `run` and `run_to_completion`. - /// - /// Defaults to 1. - pub fn workers(&mut self, w: usize) -> &mut Self { - self.workers_count = w; - self - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.93s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.45s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... FAILED -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -failures: - ----- hello stdout ---- -thread 'hello' panicked at tests/consumer.rs:28:5: -assertion `left == right` failed - left: [String("rust")] - right: ["foo", "bar"] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - hello - -test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__builder.rs_line_61_col_9.log b/mutants.out/log/src__worker__builder.rs_line_61_col_9.log deleted file mode 100644 index 66ab6d23..00000000 --- a/mutants.out/log/src__worker__builder.rs_line_61_col_9.log +++ /dev/null @@ -1,294 +0,0 @@ - -*** src/worker/builder.rs:61:9: replace WorkerBuilder::workers -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::workers -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -53,18 +53,17 @@ - self.opts.labels = labels; - self - } - - /// Set the number of workers to use `run` and `run_to_completion`. - /// - /// Defaults to 1. - pub fn workers(&mut self, w: usize) -> &mut Self { -- self.workers_count = w; -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Register a handler function for the given job type (`kind`). - /// - /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler - /// function is called with that job as its argument. - pub fn register(&mut self, kind: K, handler: H) -> &mut Self - where - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.96s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.46s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 2 - right: 3 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -thread 'tokio-runtime-worker' panicked at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/src/worker/mod.rs:366:34: -joined ok: JoinError::Panic(Id(247), ...) -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x563b90894706 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x563b90894706 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x563b90894706 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x563b90894706 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x563b908bdde0 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x563b908bdde0 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x563b90891d5f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x563b908944e4 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x563b908944e4 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x563b90896257 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x563b90895f3d - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x563b9072dff7 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x563b9072dff7 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x563b90896876 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x563b90896876 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x563b908965c2 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x563b90894c06 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x563b90896314 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x563b90632ca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x563b906332a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x563b9065c7b4 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x563b9065c7b4 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/mock/mod.rs:136:17 - 22: 0x563b90657f73 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x563b906597e7 - core::ptr::drop_in_place>::haafb117a6bbdf06e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 24: 0x563b90651943 - core::ptr::drop_in_place>>::hf5a39e83cd8415e0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 25: 0x563b906597ca - core::ptr::drop_in_place>::ha83e0c7e9b3aef07 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 26: 0x563b90651623 - core::ptr::drop_in_place>>::hdec6cad97b55ee30 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 27: 0x563b90651c73 - core::ptr::drop_in_place,std::io::error::Error>>::hb2771cb09b4929cf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 28: 0x563b906d3927 - consumer::well_behaved_many::{{closure}}::{{closure}}::h0d6bec2cfc513964 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:319:59 - 29: 0x563b906eb818 - tokio::runtime::task::core::Core::poll::{{closure}}::h4ef805ba9eeaf4ec - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/core.rs:328:17 - 30: 0x563b906eaf25 - tokio::loom::std::unsafe_cell::UnsafeCell::with_mut::h1091b628ab30f1b4 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/loom/std/unsafe_cell.rs:16:9 - 31: 0x563b906eaf25 - tokio::runtime::task::core::Core::poll::hfb50e0124d3d5ef2 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/core.rs:317:13 - 32: 0x563b906945cf - tokio::runtime::task::harness::poll_future::{{closure}}::h52f5e1dd59cb718e - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:485:19 - 33: 0x563b9066142b - as core::ops::function::FnOnce<()>>::call_once::h9606c1b0dbb6d845 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 34: 0x563b90668b79 - std::panicking::try::do_call::h1ebd071c0f30d144 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 35: 0x563b9066dc9b - __rust_try - 36: 0x563b90664263 - std::panicking::try::h0774403093f8fffc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 37: 0x563b9065d36a - std::panic::catch_unwind::h80ad1a6b5d19b1f8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 38: 0x563b9069302e - tokio::runtime::task::harness::poll_future::hc2524e7e2859b997 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:473:18 - 39: 0x563b9069636a - tokio::runtime::task::harness::Harness::poll_inner::h301ca3887a6af90e - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:208:27 - 40: 0x563b9069a423 - tokio::runtime::task::harness::Harness::poll::h22ea9903202e4895 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:153:15 - 41: 0x563b906462db - tokio::runtime::task::raw::poll::h6d4a6e143e92b15f - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/raw.rs:271:5 - 42: 0x563b9081cd17 - tokio::runtime::task::raw::RawTask::poll::hcf943f465aac79aa - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/raw.rs:201:18 - 43: 0x563b907fc922 - tokio::runtime::task::LocalNotified::run::hd7ac8b1d2a742736 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/mod.rs:416:9 - 44: 0x563b9083f08d - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}::he9d015aa4f9a0735 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:576:13 - 45: 0x563b9083eee4 - tokio::runtime::coop::with_budget::h7542c6ce0a865fe2 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 46: 0x563b9083eee4 - tokio::runtime::coop::budget::h8a6a471b9ba98c56 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 47: 0x563b9083eee4 - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h9992b4e77044b25c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:575:9 - 48: 0x563b9083e581 - tokio::runtime::scheduler::multi_thread::worker::Context::run::ha131a031952fa7f6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:526:24 - 49: 0x563b9083e1d9 - tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}::h70879f19216a138b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:491:21 - 50: 0x563b90835f30 - tokio::runtime::context::scoped::Scoped::set::hf4f203459b365771 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/scoped.rs:40:9 - 51: 0x563b907e983b - tokio::runtime::context::set_scheduler::{{closure}}::h73419841132b2805 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context.rs:176:26 - 52: 0x563b90825bd0 - std::thread::local::LocalKey::try_with::h616a1ebfcd443742 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/local.rs:286:16 - 53: 0x563b90824d8b - std::thread::local::LocalKey::with::h472a4fb2b5ae8480 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/local.rs:262:9 - 54: 0x563b907e9804 - tokio::runtime::context::set_scheduler::had4c6f19ac23b362 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context.rs:176:9 - 55: 0x563b9083e0e1 - tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::h398464830dcdd85c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:486:9 - 56: 0x563b9082b098 - tokio::runtime::context::runtime::enter_runtime::h2b7459b7d8f93de2 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 57: 0x563b9083de7c - tokio::runtime::scheduler::multi_thread::worker::run::hd12af156421a3ab7 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:478:5 - 58: 0x563b9083dceb - tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}::h689f1b38fdd6c687 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/worker.rs:447:45 - 59: 0x563b907fff5e - as core::future::future::Future>::poll::h727537cef5270c88 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/blocking/task.rs:42:21 - 60: 0x563b9081b55d - tokio::runtime::task::core::Core::poll::{{closure}}::h6f5e287e20fe12fb - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/core.rs:328:17 - 61: 0x563b9081b2ef - tokio::loom::std::unsafe_cell::UnsafeCell::with_mut::h2596d4576a395d50 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/loom/std/unsafe_cell.rs:16:9 - 62: 0x563b9081b2ef - tokio::runtime::task::core::Core::poll::h1eafcc0c49a3dea7 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/core.rs:317:13 - 63: 0x563b907fc4b5 - tokio::runtime::task::harness::poll_future::{{closure}}::hf0b1423536e8b959 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:485:19 - 64: 0x563b907fa114 - as core::ops::function::FnOnce<()>>::call_once::hac298307d6062a96 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 65: 0x563b90834ef6 - std::panicking::try::do_call::hc94998f51e806524 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 66: 0x563b908370eb - __rust_try - 67: 0x563b90834758 - std::panicking::try::h9d2463dc77b1e1d7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 68: 0x563b9084220b - std::panic::catch_unwind::h231c91826f15f136 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 69: 0x563b907fbf8f - tokio::runtime::task::harness::poll_future::h2186748f119b193e - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:473:18 - 70: 0x563b907fade3 - tokio::runtime::task::harness::Harness::poll_inner::h91d977d454587c2f - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:208:27 - 71: 0x563b907facb7 - tokio::runtime::task::harness::Harness::poll::h64a9193b78b56870 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/harness.rs:153:15 - 72: 0x563b9081cfbd - tokio::runtime::task::raw::poll::ha89b60d48cdae5ec - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/raw.rs:271:5 - 73: 0x563b9081cd17 - tokio::runtime::task::raw::RawTask::poll::hcf943f465aac79aa - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/raw.rs:201:18 - 74: 0x563b907fc9e7 - tokio::runtime::task::UnownedTask::run::hbb97b35b9b90f155 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/mod.rs:453:9 - 75: 0x563b907fcdc7 - tokio::runtime::blocking::pool::Task::run::h183ebccdf7a14703 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/blocking/pool.rs:159:9 - 76: 0x563b907ff47b - tokio::runtime::blocking::pool::Inner::run::h8f8325ee0df9ac42 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/blocking/pool.rs:513:17 - 77: 0x563b907ff184 - tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}::hf00ce7bf1def64d5 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/blocking/pool.rs:471:13 - 78: 0x563b90802bc6 - std::sys_common::backtrace::__rust_begin_short_backtrace::hde97277e3a752cae - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 79: 0x563b90834242 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h4591bcda2fbacf1d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 80: 0x563b907f9fb2 - as core::ops::function::FnOnce<()>>::call_once::h286b20545d54a123 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 81: 0x563b90834da3 - std::panicking::try::do_call::h4666b48b10a56941 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 82: 0x563b908370eb - __rust_try - 83: 0x563b90834601 - std::panicking::try::h804186294056f276 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 84: 0x563b9083404f - std::panic::catch_unwind::h22ef83000dd02191 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 85: 0x563b9083404f - std::thread::Builder::spawn_unchecked_::{{closure}}::hf6e8f8a2b458ff0b - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 86: 0x563b907e3b5f - core::ops::function::FnOnce::call_once{{vtable.shim}}::h90573c42b78d53a5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 87: 0x563b9089ad95 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 88: 0x563b9089ad95 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 89: 0x563b9089ad95 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 90: 0x75a7e7c94ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 91: 0x75a7e7d26850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 92: 0x0 - -thread 'tokio-runtime-worker' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__builder.rs_line_76_col_9.log b/mutants.out/log/src__worker__builder.rs_line_76_col_9.log deleted file mode 100644 index e4bdc0eb..00000000 --- a/mutants.out/log/src__worker__builder.rs_line_76_col_9.log +++ /dev/null @@ -1,141 +0,0 @@ - -*** src/worker/builder.rs:76:9: replace WorkerBuilder::register -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::register -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -68,18 +68,17 @@ - /// function is called with that job as its argument. - pub fn register(&mut self, kind: K, handler: H) -> &mut Self - where - K: Into, - - H: Fn(Job) -> Fut + Send + Sync + 'static, - Fut: Future> + Send, - { -- self.register_runner(kind, Closure(handler)); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Register a handler for the given job type (`kind`). - /// - /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler - /// object is called with that job as its argument. - pub fn register_runner(&mut self, kind: K, runner: H) -> &mut Self - where - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.00s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.47s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.29s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... FAILED -test dequeue_first_empty ... FAILED -test hello_pwd ... ok -test no_first_job ... FAILED -test well_behaved ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 102, 111, 111, 98, 97, 114, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 102, 111, 111, 98, 97, 114, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__builder.rs_line_89_col_9.log b/mutants.out/log/src__worker__builder.rs_line_89_col_9.log deleted file mode 100644 index 486f0eb1..00000000 --- a/mutants.out/log/src__worker__builder.rs_line_89_col_9.log +++ /dev/null @@ -1,141 +0,0 @@ - -*** src/worker/builder.rs:89:9: replace WorkerBuilder::register_runner -> &mut Self with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::register_runner -> &mut Self with Box::leak(Box::new(Default::default())) -@@ -81,18 +81,17 @@ - /// - /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler - /// object is called with that job as its argument. - pub fn register_runner(&mut self, kind: K, runner: H) -> &mut Self - where - K: Into, - H: JobRunner + 'static, - { -- self.callbacks.insert(kind.into(), Box::new(runner)); -- self -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - /// Asynchronously connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - mut self, - stream: S, - pwd: Option, - ) -> Result, E>, Error> { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.29s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.99s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test well_behaved ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 102, 111, 111, 98, 97, 114, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 65, 73, 76, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 44, 34, 101, 114, 114, 116, 121, 112, 101, 34, 58, 34, 117, 110, 107, 110, 111, 119, 110, 34, 44, 34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 78, 111, 32, 104, 97, 110, 100, 108, 101, 114, 32, 102, 111, 114, 32, 102, 111, 111, 98, 97, 114, 34, 125, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__builder.rs_line_99_col_9.log b/mutants.out/log/src__worker__builder.rs_line_99_col_9.log deleted file mode 100644 index 3762f854..00000000 --- a/mutants.out/log/src__worker__builder.rs_line_99_col_9.log +++ /dev/null @@ -1,45 +0,0 @@ - -*** src/worker/builder.rs:99:9: replace WorkerBuilder::connect_with -> Result, E>, Error> with Ok(Default::default()) - -*** mutation diff: ---- src/worker/builder.rs -+++ replace WorkerBuilder::connect_with -> Result, E>, Error> with Ok(Default::default()) -@@ -91,21 +91,17 @@ - } - - /// Asynchronously connect to a Faktory server with a non-standard stream. - pub async fn connect_with( - mut self, - stream: S, - pwd: Option, - ) -> Result, E>, Error> { -- self.opts.password = pwd; -- self.opts.is_worker = true; -- let buffered = BufStream::new(stream); -- let client = Client::new(buffered, self.opts).await?; -- Ok(Worker::new(client, self.workers_count, self.callbacks).await) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - /// Asynchronously connect to a Faktory server. - /// - /// See [`connect`](WorkerBuilder::connect). - pub async fn connect( - mut self, - url: Option<&str>, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Worker, E>: Default` is not satisfied - --> src/worker/builder.rs:99:12 - | -99 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Worker, E>` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__health.rs_line_20_col_9.log b/mutants.out/log/src__worker__health.rs_line_20_col_9.log deleted file mode 100644 index b46dde34..00000000 --- a/mutants.out/log/src__worker__health.rs_line_20_col_9.log +++ /dev/null @@ -1,146 +0,0 @@ - -*** src/worker/health.rs:20:9: replace Worker::listen_for_heartbeats -> Result with Ok(false) - -*** mutation diff: ---- src/worker/health.rs -+++ replace Worker::listen_for_heartbeats -> Result with Ok(false) -@@ -12,67 +12,11 @@ - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - pub(crate) async fn listen_for_heartbeats( - &mut self, - statuses: &Vec>, - ) -> Result { -- let mut target = STATUS_RUNNING; -- -- let mut last = time::Instant::now(); -- -- loop { -- tokio_sleep(time::Duration::from_millis(100)).await; -- -- // has a worker failed? -- if target == STATUS_RUNNING -- && statuses -- .iter() -- .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) -- { -- // tell all workers to exit -- // (though chances are they've all failed already) -- for s in statuses { -- s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- } -- break Ok(false); -- } -- -- if last.elapsed().as_secs() < 5 { -- // don't sent a heartbeat yet -- continue; -- } -- -- match self.c.heartbeat().await { -- Ok(hb) => { -- match hb { -- HeartbeatStatus::Ok => {} -- HeartbeatStatus::Quiet => { -- // tell the workers to eventually terminate -- for s in statuses { -- s.store(STATUS_QUIET, atomic::Ordering::SeqCst); -- } -- target = STATUS_QUIET; -- } -- HeartbeatStatus::Terminate => { -- // tell the workers to terminate -- // *and* fail the current job and immediately return -- for s in statuses { -- s.store(STATUS_QUIET, atomic::Ordering::SeqCst); -- } -- break Ok(true); -- } -- } -- } -- Err(e) => { -- // for this to fail, the workers have probably also failed -- for s in statuses { -- s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- } -- break Err(e); -- } -- } -- last = time::Instant::now(); -- } -+ Ok(false) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.09s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.39s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.98s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__health.rs_line_20_col_9_001.log b/mutants.out/log/src__worker__health.rs_line_20_col_9_001.log deleted file mode 100644 index da79dbfa..00000000 --- a/mutants.out/log/src__worker__health.rs_line_20_col_9_001.log +++ /dev/null @@ -1,146 +0,0 @@ - -*** src/worker/health.rs:20:9: replace Worker::listen_for_heartbeats -> Result with Ok(true) - -*** mutation diff: ---- src/worker/health.rs -+++ replace Worker::listen_for_heartbeats -> Result with Ok(true) -@@ -12,67 +12,11 @@ - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - pub(crate) async fn listen_for_heartbeats( - &mut self, - statuses: &Vec>, - ) -> Result { -- let mut target = STATUS_RUNNING; -- -- let mut last = time::Instant::now(); -- -- loop { -- tokio_sleep(time::Duration::from_millis(100)).await; -- -- // has a worker failed? -- if target == STATUS_RUNNING -- && statuses -- .iter() -- .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) -- { -- // tell all workers to exit -- // (though chances are they've all failed already) -- for s in statuses { -- s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- } -- break Ok(false); -- } -- -- if last.elapsed().as_secs() < 5 { -- // don't sent a heartbeat yet -- continue; -- } -- -- match self.c.heartbeat().await { -- Ok(hb) => { -- match hb { -- HeartbeatStatus::Ok => {} -- HeartbeatStatus::Quiet => { -- // tell the workers to eventually terminate -- for s in statuses { -- s.store(STATUS_QUIET, atomic::Ordering::SeqCst); -- } -- target = STATUS_QUIET; -- } -- HeartbeatStatus::Terminate => { -- // tell the workers to terminate -- // *and* fail the current job and immediately return -- for s in statuses { -- s.store(STATUS_QUIET, atomic::Ordering::SeqCst); -- } -- break Ok(true); -- } -- } -- } -- Err(e) => { -- // for this to fail, the workers have probably also failed -- for s in statuses { -- s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- } -- break Err(e); -- } -- } -- last = time::Instant::now(); -- } -+ Ok(true) /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.76s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.13s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__health.rs_line_28_col_23.log b/mutants.out/log/src__worker__health.rs_line_28_col_23.log deleted file mode 100644 index e275d700..00000000 --- a/mutants.out/log/src__worker__health.rs_line_28_col_23.log +++ /dev/null @@ -1,127 +0,0 @@ - -*** src/worker/health.rs:28:23: replace == with != in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace == with != in Worker::listen_for_heartbeats -@@ -20,17 +20,17 @@ - let mut target = STATUS_RUNNING; - - let mut last = time::Instant::now(); - - loop { - tokio_sleep(time::Duration::from_millis(100)).await; - - // has a worker failed? -- if target == STATUS_RUNNING -+ if target != /* ~ changed by cargo-mutants ~ */ STATUS_RUNNING - && statuses - .iter() - .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) - { - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.97s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.19s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "BEAT {\"wid\":\"wid\"}\r\nEND\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 5 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.11s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__health.rs_line_29_col_17.log b/mutants.out/log/src__worker__health.rs_line_29_col_17.log deleted file mode 100644 index 2f18530c..00000000 --- a/mutants.out/log/src__worker__health.rs_line_29_col_17.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/worker/health.rs:29:17: replace && with || in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace && with || in Worker::listen_for_heartbeats -@@ -21,17 +21,17 @@ - - let mut last = time::Instant::now(); - - loop { - tokio_sleep(time::Duration::from_millis(100)).await; - - // has a worker failed? - if target == STATUS_RUNNING -- && statuses -+ || /* ~ changed by cargo-mutants ~ */ statuses - .iter() - .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) - { - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.94s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.45s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test well_behaved ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__health.rs_line_31_col_63.log b/mutants.out/log/src__worker__health.rs_line_31_col_63.log deleted file mode 100644 index 948e2683..00000000 --- a/mutants.out/log/src__worker__health.rs_line_31_col_63.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/worker/health.rs:31:63: replace == with != in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace == with != in Worker::listen_for_heartbeats -@@ -23,17 +23,17 @@ - - loop { - tokio_sleep(time::Duration::from_millis(100)).await; - - // has a worker failed? - if target == STATUS_RUNNING - && statuses - .iter() -- .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) -+ .any(|s| s.load(atomic::Ordering::SeqCst) != /* ~ changed by cargo-mutants ~ */ STATUS_TERMINATING) - { - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - break Ok(false); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.62s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.13s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__health.rs_line_41_col_41.log b/mutants.out/log/src__worker__health.rs_line_41_col_41.log deleted file mode 100644 index 26eadf1c..00000000 --- a/mutants.out/log/src__worker__health.rs_line_41_col_41.log +++ /dev/null @@ -1,127 +0,0 @@ - -*** src/worker/health.rs:41:41: replace < with == in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace < with == in Worker::listen_for_heartbeats -@@ -33,17 +33,17 @@ - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - break Ok(false); - } - -- if last.elapsed().as_secs() < 5 { -+ if last.elapsed().as_secs() == /* ~ changed by cargo-mutants ~ */ 5 { - // don't sent a heartbeat yet - continue; - } - - match self.c.heartbeat().await { - Ok(hb) => { - match hb { - HeartbeatStatus::Ok => {} - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.91s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.22s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 2 - right: 0 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 - - -failures: - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 5 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__health.rs_line_41_col_41_001.log b/mutants.out/log/src__worker__health.rs_line_41_col_41_001.log deleted file mode 100644 index d14dde9b..00000000 --- a/mutants.out/log/src__worker__health.rs_line_41_col_41_001.log +++ /dev/null @@ -1,127 +0,0 @@ - -*** src/worker/health.rs:41:41: replace < with > in Worker::listen_for_heartbeats - -*** mutation diff: ---- src/worker/health.rs -+++ replace < with > in Worker::listen_for_heartbeats -@@ -33,17 +33,17 @@ - // tell all workers to exit - // (though chances are they've all failed already) - for s in statuses { - s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - } - break Ok(false); - } - -- if last.elapsed().as_secs() < 5 { -+ if last.elapsed().as_secs() > /* ~ changed by cargo-mutants ~ */ 5 { - // don't sent a heartbeat yet - continue; - } - - match self.c.heartbeat().await { - Ok(hb) => { - match hb { - HeartbeatStatus::Ok => {} - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.16s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.71s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.29s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 2 - right: 0 - - -failures: - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 5 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_148_col_9.log b/mutants.out/log/src__worker__mod.rs_line_148_col_9.log deleted file mode 100644 index 215d2c3f..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_148_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/worker/mod.rs:148:9: replace Worker::reconnect -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::reconnect -> Result<(), Error> with Ok(()) -@@ -140,17 +140,17 @@ - c: Client, - worker_states: Arc, - callbacks: Arc>, - terminated: bool, - } - - impl Worker { - async fn reconnect(&mut self) -> Result<(), Error> { -- self.c.reconnect().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - impl Worker { - async fn new(c: Client, workers_count: usize, callbacks: CallbacksRegistry) -> Self { - Worker { - c, - callbacks: Arc::new(callbacks), - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.78s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.32s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_unique_job ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_client ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_worker ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::enqueue_job ... ok -test community::roundtrip ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__worker__mod.rs_line_170_col_9.log b/mutants.out/log/src__worker__mod.rs_line_170_col_9.log deleted file mode 100644 index 2e4a3101..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_170_col_9.log +++ /dev/null @@ -1,130 +0,0 @@ - -*** src/worker/mod.rs:170:9: replace Worker::run_job -> Result<(), Failed> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run_job -> Result<(), Failed> with Ok(()) -@@ -162,21 +162,17 @@ - - enum Failed { - Application(E), - BadJobType(String), - } - - impl Worker { - async fn run_job(&mut self, job: Job) -> Result<(), Failed> { -- let handler = self -- .callbacks -- .get(job.kind()) -- .ok_or(Failed::BadJobType(job.kind().to_string()))?; -- handler.run(job).await.map_err(Failed::Application) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - async fn report_failure_to_server(&mut self, f: &Fail) -> Result<(), Error> { - self.c.issue(f).await?.read_ok().await - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { - self.c.issue(&Ack::new(jid)).await?.read_ok().await - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.01s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.48s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.15s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED -test terminate ... FAILED - -failures: - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_178_col_9.log b/mutants.out/log/src__worker__mod.rs_line_178_col_9.log deleted file mode 100644 index 206fd2a1..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_178_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/worker/mod.rs:178:9: replace Worker::report_failure_to_server -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::report_failure_to_server -> Result<(), Error> with Ok(()) -@@ -170,17 +170,17 @@ - let handler = self - .callbacks - .get(job.kind()) - .ok_or(Failed::BadJobType(job.kind().to_string()))?; - handler.run(job).await.map_err(Failed::Application) - } - - async fn report_failure_to_server(&mut self, f: &Fail) -> Result<(), Error> { -- self.c.issue(f).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { - self.c.issue(&Ack::new(jid)).await?.read_ok().await - } - - async fn report_on_all_workers(&mut self) -> Result<(), Error> { - let worker_states = Arc::get_mut(&mut self.worker_states) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.17s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.57s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::queue ... ok -test community::hello_worker ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_expiring_job ... ok -test community::fail ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::multi ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::test_jobs_created_with_builder ... ok -test community::hello_client ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__worker__mod.rs_line_182_col_9.log b/mutants.out/log/src__worker__mod.rs_line_182_col_9.log deleted file mode 100644 index 4d5804ec..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_182_col_9.log +++ /dev/null @@ -1,141 +0,0 @@ - -*** src/worker/mod.rs:182:9: replace Worker::report_success_to_server -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::report_success_to_server -> Result<(), Error> with Ok(()) -@@ -174,17 +174,17 @@ - handler.run(job).await.map_err(Failed::Application) - } - - async fn report_failure_to_server(&mut self, f: &Fail) -> Result<(), Error> { - self.c.issue(f).await?.read_ok().await - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { -- self.c.issue(&Ack::new(jid)).await?.read_ok().await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - async fn report_on_all_workers(&mut self) -> Result<(), Error> { - let worker_states = Arc::get_mut(&mut self.worker_states) - .expect("all workers are scoped to &mut of the user-code-visible Worker"); - - // retry delivering notification about our last job result. - // we know there's no leftover thread at this point, so there's no race on the option. - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.72s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:141:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "ls\":[\"rust\"],\"v\":2}\r\nFETCH default\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "ls\":[\"rust\"],\"v\":2}\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "ls\":[\"rust\"],\"v\":2}\r\nFETCH default\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_186_col_9.log b/mutants.out/log/src__worker__mod.rs_line_186_col_9.log deleted file mode 100644 index 4e27336b..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_186_col_9.log +++ /dev/null @@ -1,176 +0,0 @@ - -*** src/worker/mod.rs:186:9: replace Worker::report_on_all_workers -> Result<(), Error> with Ok(()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::report_on_all_workers -> Result<(), Error> with Ok(()) -@@ -178,51 +178,17 @@ - self.c.issue(f).await?.read_ok().await - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { - self.c.issue(&Ack::new(jid)).await?.read_ok().await - } - - async fn report_on_all_workers(&mut self) -> Result<(), Error> { -- let worker_states = Arc::get_mut(&mut self.worker_states) -- .expect("all workers are scoped to &mut of the user-code-visible Worker"); -- -- // retry delivering notification about our last job result. -- // we know there's no leftover thread at this point, so there's no race on the option. -- for wstate in worker_states.iter_mut() { -- let wstate = wstate.get_mut().unwrap(); -- if let Some(res) = wstate.take_last_result() { -- let r = match res { -- Ok(ref jid) => self.c.issue(&Ack::new(jid.clone())).await, -- Err(ref fail) => self.c.issue(fail).await, -- }; -- -- let r = match r { -- Ok(r) => r, -- Err(e) => { -- wstate.save_last_result(res); -- return Err(e); -- } -- }; -- -- if let Err(e) = r.read_ok().await { -- // it could be that the server did previously get our ACK/FAIL, and that it was -- // the resulting OK that failed. in that case, we would get an error response -- // when re-sending the job response. this should not count as critical. other -- // errors, however, should! -- if let Error::IO(_) = e { -- wstate.save_last_result(res); -- return Err(e); -- } -- } -- } -- } -- -- Ok(()) -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - - // FAIL currently running jobs even though they're still running. - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { - let mut running = 0; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.21s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.65s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.03s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::hello_client ... ok -test community::roundtrip ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::queue ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::multi ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__worker__mod.rs_line_228_col_9.log b/mutants.out/log/src__worker__mod.rs_line_228_col_9.log deleted file mode 100644 index 48fc219c..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_228_col_9.log +++ /dev/null @@ -1,147 +0,0 @@ - -*** src/worker/mod.rs:228:9: replace Worker::force_fail_all_workers -> usize with 1 - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::force_fail_all_workers -> usize with 1 -@@ -220,30 +220,17 @@ - Ok(()) - } - - // FAIL currently running jobs even though they're still running. - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { -- let mut running = 0; -- for wstate in self.worker_states.iter() { -- let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); -- if let Some(jid) = may_be_jid { -- running += 1; -- let f = Fail::new(jid, "unknown", "terminated"); -- let _ = match self.c.issue(&f).await { -- Ok(r) => r.read_ok().await, -- Err(_) => continue, -- } -- .is_ok(); -- } -- } -- running -+ 1 /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch and run a single job, and then return. - pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result - where - Q: AsRef + Sync, - { - let job = match self.c.fetch(queues).await? { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.11s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.52s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.12s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:399:5: -assertion `left == right` failed - left: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 69, 78, 68, 13, 10] - right: [66, 69, 65, 84, 32, 123, 34, 119, 105, 100, 34, 58, 34, 119, 105, 100, 34, 125, 13, 10, 70, 65, 73, 76, 32] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_228_col_9_001.log b/mutants.out/log/src__worker__mod.rs_line_228_col_9_001.log deleted file mode 100644 index 890ac513..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_228_col_9_001.log +++ /dev/null @@ -1,109 +0,0 @@ - -*** src/worker/mod.rs:228:9: replace Worker::force_fail_all_workers -> usize with 0 - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::force_fail_all_workers -> usize with 0 -@@ -220,30 +220,17 @@ - Ok(()) - } - - // FAIL currently running jobs even though they're still running. - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { -- let mut running = 0; -- for wstate in self.worker_states.iter() { -- let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); -- if let Some(jid) = may_be_jid { -- running += 1; -- let f = Fail::new(jid, "unknown", "terminated"); -- let _ = match self.c.issue(&f).await { -- Ok(r) => r.read_ok().await, -- Err(_) => continue, -- } -- .is_ok(); -- } -- } -- running -+ 0 /* ~ changed by cargo-mutants ~ */ - } - - /// Fetch and run a single job, and then return. - pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result - where - Q: AsRef + Sync, - { - let job = match self.c.fetch(queues).await? { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.13s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.60s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.98s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__mod.rs_line_232_col_25.log b/mutants.out/log/src__worker__mod.rs_line_232_col_25.log deleted file mode 100644 index 2e7d54d0..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_232_col_25.log +++ /dev/null @@ -1,113 +0,0 @@ - -*** src/worker/mod.rs:232:25: replace += with -= in Worker::force_fail_all_workers - -*** mutation diff: ---- src/worker/mod.rs -+++ replace += with -= in Worker::force_fail_all_workers -@@ -224,17 +224,17 @@ - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { - let mut running = 0; - for wstate in self.worker_states.iter() { - let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); - if let Some(jid) = may_be_jid { -- running += 1; -+ running -= /* ~ changed by cargo-mutants ~ */ 1; - let f = Fail::new(jid, "unknown", "terminated"); - let _ = match self.c.issue(&f).await { - Ok(r) => r.read_ok().await, - Err(_) => continue, - } - .is_ok(); - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.02s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.37s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.15s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... FAILED -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -failures: - ----- terminate stdout ---- -thread 'tokio-runtime-worker' panicked at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/src/worker/mod.rs:232:17: -attempt to subtract with overflow -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -thread 'terminate' panicked at tests/consumer.rs:394:25: -called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(260), ...) - - -failures: - terminate - -test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_232_col_25_001.log b/mutants.out/log/src__worker__mod.rs_line_232_col_25_001.log deleted file mode 100644 index d285ebbe..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_232_col_25_001.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/worker/mod.rs:232:25: replace += with *= in Worker::force_fail_all_workers - -*** mutation diff: ---- src/worker/mod.rs -+++ replace += with *= in Worker::force_fail_all_workers -@@ -224,17 +224,17 @@ - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. - async fn force_fail_all_workers(&mut self) -> usize { - let mut running = 0; - for wstate in self.worker_states.iter() { - let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); - if let Some(jid) = may_be_jid { -- running += 1; -+ running *= /* ~ changed by cargo-mutants ~ */ 1; - let f = Fail::new(jid, "unknown", "terminated"); - let _ = match self.c.issue(&f).await { - Ok(r) => r.read_ok().await, - Err(_) => continue, - } - .is_ok(); - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.22s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.99s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.28s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__mod.rs_line_249_col_9.log b/mutants.out/log/src__worker__mod.rs_line_249_col_9.log deleted file mode 100644 index 741cd544..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_249_col_9.log +++ /dev/null @@ -1,172 +0,0 @@ - -*** src/worker/mod.rs:249:9: replace Worker::run_one -> Result with Ok(false) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run_one -> Result with Ok(false) -@@ -241,43 +241,17 @@ - running - } - - /// Fetch and run a single job, and then return. - pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result - where - Q: AsRef + Sync, - { -- let job = match self.c.fetch(queues).await? { -- None => return Ok(false), -- Some(j) => j, -- }; -- -- let jid = job.jid.clone(); -- -- self.worker_states.register_running(worker, jid.clone()); -- -- match self.run_job(job).await { -- Ok(_) => { -- self.worker_states.register_success(worker, jid.clone()); -- self.report_success_to_server(jid).await?; -- } -- Err(e) => { -- let fail = match e { -- Failed::BadJobType(jt) => Fail::generic(jid, format!("No handler for {}", jt)), -- Failed::Application(e) => Fail::generic_with_backtrace(jid, e), -- }; -- self.worker_states.register_failure(worker, &fail); -- self.report_failure_to_server(&fail).await?; -- } -- } -- -- self.worker_states.reset(worker); -- -- Ok(true) -+ Ok(false) /* ~ changed by cargo-mutants ~ */ - } - } - - impl< - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.22s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.61s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.27s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:133:25: -assertion failed: did_work - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "d\":455637,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "d\":455637,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "\"wid\":\"wid\",\"pid\":455637,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_249_col_9_001.log b/mutants.out/log/src__worker__mod.rs_line_249_col_9_001.log deleted file mode 100644 index fc315241..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_249_col_9_001.log +++ /dev/null @@ -1,172 +0,0 @@ - -*** src/worker/mod.rs:249:9: replace Worker::run_one -> Result with Ok(true) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run_one -> Result with Ok(true) -@@ -241,43 +241,17 @@ - running - } - - /// Fetch and run a single job, and then return. - pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result - where - Q: AsRef + Sync, - { -- let job = match self.c.fetch(queues).await? { -- None => return Ok(false), -- Some(j) => j, -- }; -- -- let jid = job.jid.clone(); -- -- self.worker_states.register_running(worker, jid.clone()); -- -- match self.run_job(job).await { -- Ok(_) => { -- self.worker_states.register_success(worker, jid.clone()); -- self.report_success_to_server(jid).await?; -- } -- Err(e) => { -- let fail = match e { -- Failed::BadJobType(jt) => Fail::generic(jid, format!("No handler for {}", jt)), -- Failed::Application(e) => Fail::generic_with_backtrace(jid, e), -- }; -- self.worker_states.register_failure(worker, &fail); -- self.report_failure_to_server(&fail).await?; -- } -- } -- -- self.worker_states.reset(worker); -- -- Ok(true) -+ Ok(true) /* ~ changed by cargo-mutants ~ */ - } - } - - impl< - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.07s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.50s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.06s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... FAILED -test dequeue ... FAILED -test hello_pwd ... ok -test terminate ... FAILED -test no_first_job ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED - -failures: - ----- dequeue_first_empty stdout ---- -thread 'dequeue_first_empty' panicked at tests/consumer.rs:125:25: -assertion failed: !did_work - ----- dequeue stdout ---- -thread 'dequeue' panicked at tests/consumer.rs:89:5: -assertion `left == right` failed - left: [] - right: [70, 69, 84, 67, 72, 32, 100, 101, 102, 97, 117, 108, 116, 13, 10, 65, 67, 75, 32, 123, 34, 106, 105, 100, 34, 58, 34, 102, 111, 111, 106, 105, 100, 34, 125, 13, 10] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:276:5: -assertion `left == right` failed - left: "\"wid\":\"wid\",\"pid\":487612,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:351:9: -assertion `left == right` failed - left: "d\":487612,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:210:5: -assertion `left == right` failed - left: "d\":487612,\"labels\":[\"rust\"],\"v\":2}\r\nEND\r\n" - right: "\r\nFETCH default\r\nACK {\"jid\":\"jid\"}\r\nEND\r\n" - - -failures: - dequeue - dequeue_first_empty - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 2 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_285_col_9.log b/mutants.out/log/src__worker__mod.rs_line_285_col_9.log deleted file mode 100644 index 1b2e8050..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_285_col_9.log +++ /dev/null @@ -1,46 +0,0 @@ - -*** src/worker/mod.rs:285:9: replace Worker::for_worker -> Result with Ok(Default::default()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::for_worker -> Result with Ok(Default::default()) -@@ -277,22 +277,17 @@ - } - - impl< - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker - { - async fn for_worker(&mut self) -> Result { -- Ok(Worker { -- c: self.c.connect_again().await?, -- callbacks: Arc::clone(&self.callbacks), -- worker_states: Arc::clone(&self.worker_states), -- terminated: self.terminated, -- }) -+ Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - async fn spawn_worker( - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0277]: the trait bound `Worker: Default` is not satisfied - --> src/worker/mod.rs:285:12 - | -285 | Ok(Default::default()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `Worker` - -For more information about this error, try `rustc --explain E0277`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_302_col_9.log b/mutants.out/log/src__worker__mod.rs_line_302_col_9.log deleted file mode 100644 index 4ee53a54..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_302_col_9.log +++ /dev/null @@ -1,62 +0,0 @@ - -*** src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from(Ok(()))) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from(Ok(()))) -@@ -294,28 +294,17 @@ - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { -- let mut w = self.for_worker().await?; -- let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); -- Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -- if let Err(e) = w.run_one(worker, &queues[..]).await { -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- return Err(e); -- } -- } -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- Ok(()) -- })) -+ Ok(JoinHandle::from(Ok(()))) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). - /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0308]: mismatched types - --> src/worker/mod.rs:302:29 - | -302 | Ok(JoinHandle::from(Ok(()))) /* ~ changed by cargo-mutants ~ */ - | ---------------- ^^^^^^ expected `JoinHandle>`, found `Result<(), _>` - | | - | arguments to this function are incorrect - | - = note: expected struct `tokio::task::JoinHandle>` - found enum `Result<_, _>` -note: associated function defined here - --> /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/convert/mod.rs:584:8 - | -584 | fn from(value: T) -> Self; - | ^^^^ - -For more information about this error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_302_col_9_001.log b/mutants.out/log/src__worker__mod.rs_line_302_col_9_001.log deleted file mode 100644 index 11241d25..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_302_col_9_001.log +++ /dev/null @@ -1,74 +0,0 @@ - -*** src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new(Ok(()))) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new(Ok(()))) -@@ -294,28 +294,17 @@ - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { -- let mut w = self.for_worker().await?; -- let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); -- Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -- if let Err(e) = w.run_one(worker, &queues[..]).await { -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- return Err(e); -- } -- } -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- Ok(()) -- })) -+ Ok(JoinHandle::new(Ok(()))) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). - /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0624]: associated function `new` is private - --> src/worker/mod.rs:302:24 - | -302 | Ok(JoinHandle::new(Ok(()))) /* ~ changed by cargo-mutants ~ */ - | ^^^ private associated function - | - ::: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:5 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ------------------------------------------------ private associated function defined here - -error[E0308]: mismatched types - --> src/worker/mod.rs:302:28 - | -302 | Ok(JoinHandle::new(Ok(()))) /* ~ changed by cargo-mutants ~ */ - | --------------- ^^^^^^ expected `RawTask`, found `Result<(), _>` - | | - | arguments to this function are incorrect - | - = note: expected struct `runtime::task::raw::RawTask` - found enum `Result<(), _>` -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:19 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ^^^ - -Some errors have detailed explanations: E0308, E0624. -For more information about an error, try `rustc --explain E0308`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_302_col_9_002.log b/mutants.out/log/src__worker__mod.rs_line_302_col_9_002.log deleted file mode 100644 index 0b74c84a..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_302_col_9_002.log +++ /dev/null @@ -1,58 +0,0 @@ - -*** src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from_iter([Ok(())])) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from_iter([Ok(())])) -@@ -294,28 +294,17 @@ - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { -- let mut w = self.for_worker().await?; -- let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); -- Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -- if let Err(e) = w.run_one(worker, &queues[..]).await { -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- return Err(e); -- } -- } -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- Ok(()) -- })) -+ Ok(JoinHandle::from_iter([Ok(())])) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). - /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0599]: no function or associated item named `from_iter` found for struct `tokio::task::JoinHandle` in the current scope - --> src/worker/mod.rs:302:24 - | -302 | Ok(JoinHandle::from_iter([Ok(())])) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^ function or associated item not found in `JoinHandle<_>` - | -note: if you're trying to build a new `tokio::task::JoinHandle<_>`, consider using `tokio::task::JoinHandle::::new` which returns `tokio::task::JoinHandle` - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:5 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For more information about this error, try `rustc --explain E0599`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_302_col_9_003.log b/mutants.out/log/src__worker__mod.rs_line_302_col_9_003.log deleted file mode 100644 index 6ba44317..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_302_col_9_003.log +++ /dev/null @@ -1,74 +0,0 @@ - -*** src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new()) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new()) -@@ -294,28 +294,17 @@ - &mut self, - status: Arc, - worker: usize, - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { -- let mut w = self.for_worker().await?; -- let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); -- Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -- if let Err(e) = w.run_one(worker, &queues[..]).await { -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- return Err(e); -- } -- } -- status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); -- Ok(()) -- })) -+ Ok(JoinHandle::new()) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned). - /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs. - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0624]: associated function `new` is private - --> src/worker/mod.rs:302:24 - | -302 | Ok(JoinHandle::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^ private associated function - | - ::: /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:5 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ------------------------------------------------ private associated function defined here - -error[E0061]: this function takes 1 argument but 0 arguments were supplied - --> src/worker/mod.rs:302:12 - | -302 | Ok(JoinHandle::new()) /* ~ changed by cargo-mutants ~ */ - | ^^^^^^^^^^^^^^^-- an argument of type `runtime::task::raw::RawTask` is missing - | -note: associated function defined here - --> /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/task/join.rs:169:19 - | -169 | pub(super) fn new(raw: RawTask) -> JoinHandle { - | ^^^ -help: provide the argument - | -302 | Ok(JoinHandle::new(/* runtime::task::raw::RawTask */)) /* ~ changed by cargo-mutants ~ */ - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Some errors have detailed explanations: E0061, E0624. -For more information about an error, try `rustc --explain E0061`. -error: could not compile `faktory` (lib) due to 2 previous errors -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 2 previous errors - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_305_col_57.log b/mutants.out/log/src__worker__mod.rs_line_305_col_57.log deleted file mode 100644 index 69b28d7a..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_305_col_57.log +++ /dev/null @@ -1,134 +0,0 @@ - -*** src/worker/mod.rs:305:57: replace == with != in Worker::spawn_worker - -*** mutation diff: ---- src/worker/mod.rs -+++ replace == with != in Worker::spawn_worker -@@ -297,17 +297,17 @@ - queues: &[Q], - ) -> Result>, Error> - where - Q: AsRef, - { - let mut w = self.for_worker().await?; - let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); - Ok(tokio::spawn(async move { -- while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { -+ while status.load(atomic::Ordering::SeqCst) != /* ~ changed by cargo-mutants ~ */ STATUS_RUNNING { - if let Err(e) = w.run_one(worker, &queues[..]).await { - status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - return Err(e); - } - } - status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); - Ok(()) - })) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.96s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.53s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test well_behaved ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED -test no_first_job ... FAILED - -failures: - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:202:5: -assertion `left == right` failed - left: "END\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:5: -assertion `left == right` failed - left: 0 - right: 1 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:342:5: -assertion `left == right` failed - left: "END\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:267:5: -assertion `left == right` failed - left: "END\r\n" - right: "BEAT {\"wid\":\"wid\"}\r\nBEAT {\"wid\":\"wid\"}\r\nEND\r\n" - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_328_col_9.log b/mutants.out/log/src__worker__mod.rs_line_328_col_9.log deleted file mode 100644 index b60c00cc..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_328_col_9.log +++ /dev/null @@ -1,273 +0,0 @@ - -*** src/worker/mod.rs:328:9: replace Worker::run -> Result with Ok(0) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run -> Result with Ok(0) -@@ -320,62 +320,17 @@ - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), - /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - pub async fn run(&mut self, queues: &[Q]) -> Result - where - Q: AsRef, - { -- assert!(!self.terminated, "do not re-run a terminated worker"); -- self.report_on_all_workers().await?; -- -- let workers_count = self.worker_states.len(); -- -- // keep track of the current status of each worker -- let statuses: Vec<_> = (0..workers_count) -- .map(|_| Arc::new(atomic::AtomicUsize::new(STATUS_RUNNING))) -- .collect(); -- -- let mut workers = Vec::with_capacity(workers_count); -- for (worker, status) in statuses.iter().enumerate().take(workers_count) { -- let handle = self -- .spawn_worker(Arc::clone(status), worker, queues) -- .await?; -- workers.push(handle) -- } -- -- let exit = self.listen_for_heartbeats(&statuses).await; -- -- // there are a couple of cases here: -- // -- // - we got TERMINATE, so we should just return, even if a worker is still running -- // - we got TERMINATE and all workers has exited -- // - we got an error from heartbeat() -- // -- self.terminated = exit.is_ok(); -- -- if let Ok(true) = exit { -- let running = self.force_fail_all_workers().await; -- if running != 0 { -- return Ok(running); -- } -- } -- -- // we want to expose worker errors, or otherwise the heartbeat error -- let mut results = Vec::with_capacity(workers_count); -- for w in workers { -- results.push(w.await.expect("joined ok")); -- } -- let result = results.into_iter().collect::, _>>(); -- -- match exit { -- Ok(_) => result.map(|_| 0), -- Err(e) => result.and(Err(e)), -- } -+ Ok(0) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker until the server tells us to exit or a connection cannot be re-established. - /// - /// This function never returns. When the worker decides to exit, the process is terminated. - pub async fn run_to_completion(mut self, queues: &[Q]) -> ! - where - Q: AsRef, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.25s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.63s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.12s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 2 -thread 'well_behaved' panicked at tests/consumer.rs:194:25: -called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(250), ...) -thread 'well_behaved' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x5eafc767e0d6 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x5eafc767e0d6 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x5eafc767e0d6 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x5eafc767e0d6 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x5eafc76a77b0 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x5eafc76a77b0 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x5eafc767b72f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x5eafc767deb4 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x5eafc767deb4 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x5eafc767fc27 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x5eafc767f90d - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x5eafc751e277 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x5eafc751e277 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x5eafc7680246 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x5eafc7680246 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x5eafc767ff92 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x5eafc767e5d6 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x5eafc767fce4 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x5eafc7445ca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x5eafc74462a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x5eafc746a064 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x5eafc746a064 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/mock/mod.rs:136:17 - 22: 0x5eafc7466783 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x5eafc74c805f - consumer::well_behaved::{{closure}}::h74d858d81dce02a5 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:214:1 - 24: 0x5eafc7447233 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x5eafc74aa444 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x5eafc74a9940 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x5eafc74a9940 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x5eafc74a9940 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x5eafc74d0fa4 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x5eafc745c238 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x5eafc7495cb4 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x5eafc745c208 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x5eafc74b1987 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x5eafc74b7148 - consumer::well_behaved::h88b846a49b219eb1 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:210:5 - 35: 0x5eafc74c7e77 - consumer::well_behaved::{{closure}}::hebef571c952f5951 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:152:24 - 36: 0x5eafc7460576 - core::ops::function::FnOnce::call_once::h17044c0a3e747593 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x5eafc7523e3f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x5eafc7523e3f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x5eafc7522c91 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x5eafc7522c91 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x5eafc7522c91 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x5eafc7522c91 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x5eafc7522c91 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x5eafc7522c91 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x5eafc7522c91 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x5eafc74ea076 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x5eafc74ea076 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x5eafc74ef0b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x5eafc74ef0b7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x5eafc74ef0b7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x5eafc74ef0b7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x5eafc74ef0b7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x5eafc74ef0b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x5eafc74ef0b7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x5eafc7684765 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x5eafc7684765 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x5eafc7684765 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x73f301694ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x73f301726850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'well_behaved' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_328_col_9_001.log b/mutants.out/log/src__worker__mod.rs_line_328_col_9_001.log deleted file mode 100644 index 09d4b43e..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_328_col_9_001.log +++ /dev/null @@ -1,273 +0,0 @@ - -*** src/worker/mod.rs:328:9: replace Worker::run -> Result with Ok(1) - -*** mutation diff: ---- src/worker/mod.rs -+++ replace Worker::run -> Result with Ok(1) -@@ -320,62 +320,17 @@ - /// - /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server - /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), - /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - pub async fn run(&mut self, queues: &[Q]) -> Result - where - Q: AsRef, - { -- assert!(!self.terminated, "do not re-run a terminated worker"); -- self.report_on_all_workers().await?; -- -- let workers_count = self.worker_states.len(); -- -- // keep track of the current status of each worker -- let statuses: Vec<_> = (0..workers_count) -- .map(|_| Arc::new(atomic::AtomicUsize::new(STATUS_RUNNING))) -- .collect(); -- -- let mut workers = Vec::with_capacity(workers_count); -- for (worker, status) in statuses.iter().enumerate().take(workers_count) { -- let handle = self -- .spawn_worker(Arc::clone(status), worker, queues) -- .await?; -- workers.push(handle) -- } -- -- let exit = self.listen_for_heartbeats(&statuses).await; -- -- // there are a couple of cases here: -- // -- // - we got TERMINATE, so we should just return, even if a worker is still running -- // - we got TERMINATE and all workers has exited -- // - we got an error from heartbeat() -- // -- self.terminated = exit.is_ok(); -- -- if let Ok(true) = exit { -- let running = self.force_fail_all_workers().await; -- if running != 0 { -- return Ok(running); -- } -- } -- -- // we want to expose worker errors, or otherwise the heartbeat error -- let mut results = Vec::with_capacity(workers_count); -- for w in workers { -- results.push(w.await.expect("joined ok")); -- } -- let result = results.into_iter().collect::, _>>(); -- -- match exit { -- Ok(_) => result.map(|_| 0), -- Err(e) => result.and(Err(e)), -- } -+ Ok(1) /* ~ changed by cargo-mutants ~ */ - } - - /// Run this worker until the server tells us to exit or a connection cannot be re-established. - /// - /// This function never returns. When the worker decides to exit, the process is terminated. - pub async fn run_to_completion(mut self, queues: &[Q]) -> ! - where - Q: AsRef, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.99s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.43s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -thread 'tokio-runtime-worker' panicked at tests/mock/mod.rs:137:9: -assertion `left == right` failed - left: 1 - right: 2 -thread 'terminate' panicked at tests/consumer.rs:394:25: -called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(250), ...) -thread 'terminate' panicked at tests/mock/mod.rs:136:33: -called `Result::unwrap()` on an `Err` value: PoisonError { .. } -stack backtrace: - 0: 0x62017b01a0d6 - std::backtrace_rs::backtrace::libunwind::trace::h6e4a662bea54ccfc - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 - 1: 0x62017b01a0d6 - std::backtrace_rs::backtrace::trace_unsynchronized::hb42b4eb2797d9c0e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 - 2: 0x62017b01a0d6 - std::sys_common::backtrace::_print_fmt::h2bc261f3223f4e4d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:68:5 - 3: 0x62017b01a0d6 - ::fmt::h9cca0343d66d16a8 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:44:22 - 4: 0x62017b0437b0 - core::fmt::rt::Argument::fmt::h8b666c45176be671 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/rt.rs:142:9 - 5: 0x62017b0437b0 - core::fmt::write::h4311bce0ee536615 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/fmt/mod.rs:1120:17 - 6: 0x62017b01772f - std::io::Write::write_fmt::h13dbc311a0609d24 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/io/mod.rs:1846:15 - 7: 0x62017b019eb4 - std::sys_common::backtrace::_print::h25f19b1d64e81f86 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:47:5 - 8: 0x62017b019eb4 - std::sys_common::backtrace::print::h2fb8f70628a241ed - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:34:9 - 9: 0x62017b01bc27 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d - 10: 0x62017b01b90d - std::panicking::default_hook::h5ac38aa38e0086d2 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:289:9 - 11: 0x62017aeba277 - as core::ops::function::Fn>::call::h3af3363330b8f773 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 12: 0x62017aeba277 - test::test_main::{{closure}}::h6ba67334e23b2f5d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:138:21 - 13: 0x62017b01c246 - as core::ops::function::Fn>::call::hce488f674cf5618d - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2029:9 - 14: 0x62017b01c246 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:785:13 - 15: 0x62017b01bf92 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:659:13 - 16: 0x62017b01a5d6 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:171:18 - 17: 0x62017b01bce4 - rust_begin_unwind - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:647:5 - 18: 0x62017ade1ca5 - core::panicking::panic_fmt::hc69c4d258fe11477 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panicking.rs:72:14 - 19: 0x62017ade22a3 - core::result::unwrap_failed::hff299ec748d62aab - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1649:5 - 20: 0x62017ae06064 - core::result::Result::unwrap::h0100ff3dd08a0b56 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/result.rs:1073:23 - 21: 0x62017ae06064 - ::drop::hb4e133d30d9097ad - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/mock/mod.rs:136:17 - 22: 0x62017ae02783 - core::ptr::drop_in_place::h0bff2a1cbc1251ef - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ptr/mod.rs:507:1 - 23: 0x62017ae68813 - consumer::terminate::{{closure}}::h98d9162e07f14c60 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:424:1 - 24: 0x62017ade3233 - as core::future::future::Future>::poll::h24c21f584a30906c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/future/future.rs:124:9 - 25: 0x62017ae46444 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h4626c788a640ef7c - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:63 - 26: 0x62017ae45940 - tokio::runtime::coop::with_budget::h7357a691b2dc52d6 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:107:5 - 27: 0x62017ae45940 - tokio::runtime::coop::budget::h9143e9458443b4bf - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/coop.rs:73:5 - 28: 0x62017ae45940 - tokio::runtime::park::CachedParkThread::block_on::h234f3aa359c16a03 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/park.rs:281:31 - 29: 0x62017ae6cfa4 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h7a655f53aee5a339 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/blocking.rs:66:9 - 30: 0x62017adf8238 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h598fee04aa40af4b - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:87:13 - 31: 0x62017ae31cb4 - tokio::runtime::context::runtime::enter_runtime::h84e9dab972ea2390 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/context/runtime.rs:65:16 - 32: 0x62017adf8208 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdebc2d3be4649c6d - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/scheduler/multi_thread/mod.rs:86:9 - 33: 0x62017ae4d987 - tokio::runtime::runtime::Runtime::block_on::hd23f664524826391 - at /home/pavel/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/runtime/runtime.rs:350:45 - 34: 0x62017ae536e8 - consumer::terminate::hfd1de1d271d1e37e - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:420:5 - 35: 0x62017ae68637 - consumer::terminate::{{closure}}::h1143019e1fae7520 - at /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/tests/consumer.rs:359:21 - 36: 0x62017adfc6d6 - core::ops::function::FnOnce::call_once::h2fc6066bdd791778 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 37: 0x62017aebfe3f - core::ops::function::FnOnce::call_once::h75736212c3378490 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 38: 0x62017aebfe3f - test::__rust_begin_short_backtrace::h5404e4328b1839a0 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:621:18 - 39: 0x62017aebec91 - test::run_test_in_process::{{closure}}::h14f62785470e673e - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:60 - 40: 0x62017aebec91 - as core::ops::function::FnOnce<()>>::call_once::h5f21c69778df904a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 41: 0x62017aebec91 - std::panicking::try::do_call::h6727ab5cf938ba4a - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 42: 0x62017aebec91 - std::panicking::try::h06f2ad8604abea38 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 43: 0x62017aebec91 - std::panic::catch_unwind::h1a2ca30f7d8c994c - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 44: 0x62017aebec91 - test::run_test_in_process::h9b2121a0771a1f37 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:644:27 - 45: 0x62017aebec91 - test::run_test::{{closure}}::h4e7e18d467165f32 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:567:43 - 46: 0x62017ae86076 - test::run_test::{{closure}}::hd2f71fc407b285f3 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/test/src/lib.rs:595:41 - 47: 0x62017ae86076 - std::sys_common::backtrace::__rust_begin_short_backtrace::h84dd44f2bdb051ad - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys_common/backtrace.rs:155:18 - 48: 0x62017ae8b0b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbe8a81e42ce589e5 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:529:17 - 49: 0x62017ae8b0b7 - as core::ops::function::FnOnce<()>>::call_once::h344823c619a67949 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/panic/unwind_safe.rs:272:9 - 50: 0x62017ae8b0b7 - std::panicking::try::do_call::hd626e17315d03ffd - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:554:40 - 51: 0x62017ae8b0b7 - std::panicking::try::h970ab6d39bf1bcd7 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panicking.rs:518:19 - 52: 0x62017ae8b0b7 - std::panic::catch_unwind::h1a28b9d8ff25f174 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/panic.rs:142:14 - 53: 0x62017ae8b0b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::hff28967b9d312904 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/thread/mod.rs:528:30 - 54: 0x62017ae8b0b7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::he6a1463a14803311 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/core/src/ops/function.rs:250:5 - 55: 0x62017b020765 - as core::ops::function::FnOnce>::call_once::h32ae492e80523c39 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 56: 0x62017b020765 - as core::ops::function::FnOnce>::call_once::hd05b2dc112b7a972 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/alloc/src/boxed.rs:2015:9 - 57: 0x62017b020765 - std::sys::pal::unix::thread::Thread::new::thread_start::h40e6fd3f8ce15a14 - at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97/library/std/src/sys/pal/unix/thread.rs:108:17 - 58: 0x7bd416894ac3 - start_thread - at ./nptl/pthread_create.c:442:8 - 59: 0x7bd416926850 - __GI___clone3 - at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - 60: 0x0 - -thread 'terminate' panicked at library/core/src/panicking.rs:163:5: -panic in a destructor during cleanup -thread caused non-unwinding panic. aborting. -error: test failed, to rerun pass `--test consumer` - -Caused by: - process didn't exit successfully: `/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/target/debug/deps/consumer-e1d67c7fdddceb0c` (signal: 6, SIGABRT: process abort signal) - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__mod.rs_line_358_col_24.log b/mutants.out/log/src__worker__mod.rs_line_358_col_24.log deleted file mode 100644 index 01de952e..00000000 --- a/mutants.out/log/src__worker__mod.rs_line_358_col_24.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/worker/mod.rs:358:24: replace != with == in Worker::run - -*** mutation diff: ---- src/worker/mod.rs -+++ replace != with == in Worker::run -@@ -350,17 +350,17 @@ - // - we got TERMINATE, so we should just return, even if a worker is still running - // - we got TERMINATE and all workers has exited - // - we got an error from heartbeat() - // - self.terminated = exit.is_ok(); - - if let Ok(true) = exit { - let running = self.force_fail_all_workers().await; -- if running != 0 { -+ if running == /* ~ changed by cargo-mutants ~ */ 0 { - return Ok(running); - } - } - - // we want to expose worker errors, or otherwise the heartbeat error - let mut results = Vec::with_capacity(workers_count); - for w in workers { - results.push(w.await.expect("joined ok")); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.01s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.93s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__runner.rs_line_63_col_9.log b/mutants.out/log/src__worker__runner.rs_line_63_col_9.log deleted file mode 100644 index 90b7fea8..00000000 --- a/mutants.out/log/src__worker__runner.rs_line_63_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/worker/runner.rs:63:9: replace >::run -> Result<(), E> with Ok(()) - -*** mutation diff: ---- src/worker/runner.rs -+++ replace >::run -> Result<(), E> with Ok(()) -@@ -55,17 +55,17 @@ - #[async_trait::async_trait] - impl JobRunner for Box - where - F: Send + Sync + Fn(Job) -> Fut, - Fut: Future> + Send, - { - type Error = E; - async fn run(&self, job: Job) -> Result<(), E> { -- self(job).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - // Additional Blanket Implementations - #[async_trait::async_trait] - impl<'a, E, F, Fut> JobRunner for &'a F - where - F: Send + Sync + Fn(Job) -> Fut, - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.76s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... ok -test well_behaved ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test enqueue ... ok -test queue_control ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_worker ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::multi ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::fail ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::roundtrip ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::queue ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__worker__runner.rs_line_76_col_9.log b/mutants.out/log/src__worker__runner.rs_line_76_col_9.log deleted file mode 100644 index 712812ad..00000000 --- a/mutants.out/log/src__worker__runner.rs_line_76_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/worker/runner.rs:76:9: replace ::run -> Result<(), E> with Ok(()) - -*** mutation diff: ---- src/worker/runner.rs -+++ replace ::run -> Result<(), E> with Ok(()) -@@ -68,17 +68,17 @@ - #[async_trait::async_trait] - impl<'a, E, F, Fut> JobRunner for &'a F - where - F: Send + Sync + Fn(Job) -> Fut, - Fut: Future> + Send, - { - type Error = E; - async fn run(&self, job: Job) -> Result<(), E> { -- self(job).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - #[repr(transparent)] - pub(crate) struct Closure(pub F); - - #[async_trait::async_trait] - impl JobRunner for Closure - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.76s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.22s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.05s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::test_jobs_created_with_builder ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::roundtrip ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_expiring_job ... ok -test community::queue ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::enqueue_job ... ok -test community::hello_client ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_worker ... ok -test community::fail ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__worker__runner.rs_line_91_col_9.log b/mutants.out/log/src__worker__runner.rs_line_91_col_9.log deleted file mode 100644 index 0a08946c..00000000 --- a/mutants.out/log/src__worker__runner.rs_line_91_col_9.log +++ /dev/null @@ -1,122 +0,0 @@ - -*** src/worker/runner.rs:91:9: replace >::run -> Result<(), E> with Ok(()) - -*** mutation diff: ---- src/worker/runner.rs -+++ replace >::run -> Result<(), E> with Ok(()) -@@ -83,13 +83,13 @@ - #[async_trait::async_trait] - impl JobRunner for Closure - where - F: Send + Sync + Fn(Job) -> Fut, - Fut: Future> + Send, - { - type Error = E; - async fn run(&self, job: Job) -> Result<(), E> { -- (self.0)(job).await -+ Ok(()) /* ~ changed by cargo-mutants ~ */ - } - } - - pub(crate) type BoxedJobRunner = Box>; - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.11s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.61s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test no_first_job ... FAILED -test well_behaved ... FAILED -test terminate ... FAILED -test well_behaved_many ... FAILED - -failures: - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- terminate stdout ---- -thread 'terminate' panicked at tests/consumer.rs:394:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:34: -called `Result::unwrap()` on an `Err` value: IO(Custom { kind: UnexpectedEof, error: "early eof" }) - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__state.rs_line_15_col_9.log b/mutants.out/log/src__worker__state.rs_line_15_col_9.log deleted file mode 100644 index 8c38ecbe..00000000 --- a/mutants.out/log/src__worker__state.rs_line_15_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/worker/state.rs:15:9: replace WorkerState::take_last_result -> Option> with None - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::take_last_result -> Option> with None -@@ -7,17 +7,17 @@ - #[derive(Default)] - pub(crate) struct WorkerState { - last_job_result: Option>, - running_job: Option, - } - - impl WorkerState { - pub(crate) fn take_last_result(&mut self) -> Option> { -- self.last_job_result.take() -+ None /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { - self.running_job.take() - } - - pub(crate) fn save_last_result(&mut self, res: Result) { - self.last_job_result = Some(res) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.88s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.95s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue_first_empty ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test well_behaved ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test hello ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::multi ... ok -test enterprise::ent_expiring_job ... ok -test community::roundtrip ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::fail ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_worker ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::enqueue_job ... ok -test community::queue ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_client ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__worker__state.rs_line_15_col_9_001.log b/mutants.out/log/src__worker__state.rs_line_15_col_9_001.log deleted file mode 100644 index ea969db0..00000000 --- a/mutants.out/log/src__worker__state.rs_line_15_col_9_001.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/worker/state.rs:15:9: replace WorkerState::take_last_result -> Option> with Some(Ok(Default::default())) - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::take_last_result -> Option> with Some(Ok(Default::default())) -@@ -7,17 +7,17 @@ - #[derive(Default)] - pub(crate) struct WorkerState { - last_job_result: Option>, - running_job: Option, - } - - impl WorkerState { - pub(crate) fn take_last_result(&mut self) -> Option> { -- self.last_job_result.take() -+ Some(Ok(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { - self.running_job.take() - } - - pub(crate) fn save_last_result(&mut self, res: Result) { - self.last_job_result = Some(res) - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.17s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.72s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test dequeue_first_empty ... ok -test hello ... ok -test hello_pwd ... ok -test no_first_job ... FAILED -test well_behaved ... FAILED -test well_behaved_many ... FAILED -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__state.rs_line_19_col_9.log b/mutants.out/log/src__worker__state.rs_line_19_col_9.log deleted file mode 100644 index b6a71a2c..00000000 --- a/mutants.out/log/src__worker__state.rs_line_19_col_9.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/worker/state.rs:19:9: replace WorkerState::take_cuurently_running -> Option with None - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::take_cuurently_running -> Option with None -@@ -11,17 +11,17 @@ - } - - impl WorkerState { - pub(crate) fn take_last_result(&mut self) -> Option> { - self.last_job_result.take() - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { -- self.running_job.take() -+ None /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn save_last_result(&mut self, res: Result) { - self.last_job_result = Some(res) - } - } - - pub(crate) struct WorkerStatesRegistry(Vec>); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.04s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.45s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.28s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__state.rs_line_19_col_9_001.log b/mutants.out/log/src__worker__state.rs_line_19_col_9_001.log deleted file mode 100644 index d803a6e8..00000000 --- a/mutants.out/log/src__worker__state.rs_line_19_col_9_001.log +++ /dev/null @@ -1,135 +0,0 @@ - -*** src/worker/state.rs:19:9: replace WorkerState::take_cuurently_running -> Option with Some(Default::default()) - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::take_cuurently_running -> Option with Some(Default::default()) -@@ -11,17 +11,17 @@ - } - - impl WorkerState { - pub(crate) fn take_last_result(&mut self) -> Option> { - self.last_job_result.take() - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { -- self.running_job.take() -+ Some(Default::default()) /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn save_last_result(&mut self, res: Result) { - self.last_job_result = Some(res) - } - } - - pub(crate) struct WorkerStatesRegistry(Vec>); - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.99s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.65s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test dequeue ... ok -test hello ... ok -test hello_pwd ... ok -test terminate ... FAILED -test well_behaved_many ... FAILED -test well_behaved ... FAILED -test no_first_job ... FAILED - -failures: - ----- terminate stdout ---- -{"jid":"","errtype":"unknown","message":"terminated"} -thread 'terminate' panicked at tests/consumer.rs:408:5: -assertion `left == right` failed - left: Some("") - right: Some("forever") -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 2 - right: 0 - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 - - -failures: - no_first_job - terminate - well_behaved - well_behaved_many - -test result: FAILED. 4 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__state.rs_line_23_col_9.log b/mutants.out/log/src__worker__state.rs_line_23_col_9.log deleted file mode 100644 index 066c6296..00000000 --- a/mutants.out/log/src__worker__state.rs_line_23_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/worker/state.rs:23:9: replace WorkerState::save_last_result with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerState::save_last_result with () -@@ -15,17 +15,17 @@ - self.last_job_result.take() - } - - pub(crate) fn take_cuurently_running(&mut self) -> Option { - self.running_job.take() - } - - pub(crate) fn save_last_result(&mut self, res: Result) { -- self.last_job_result = Some(res) -+ () /* ~ changed by cargo-mutants ~ */ - } - } - - pub(crate) struct WorkerStatesRegistry(Vec>); - - impl Deref for WorkerStatesRegistry { - type Target = Vec>; - fn deref(&self) -> &Self::Target { - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.80s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.22s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.02s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test community::roundtrip ... ok -test community::queue ... ok -test community::multi ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::fail ... ok -test enterprise::ent_unique_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::hello_client ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__worker__state.rs_line_32_col_9.log b/mutants.out/log/src__worker__state.rs_line_32_col_9.log deleted file mode 100644 index e2353e1c..00000000 --- a/mutants.out/log/src__worker__state.rs_line_32_col_9.log +++ /dev/null @@ -1,44 +0,0 @@ - -*** src/worker/state.rs:32:9: replace ::deref -> &Self::Target with &Default::default() - -*** mutation diff: ---- src/worker/state.rs -+++ replace ::deref -> &Self::Target with &Default::default() -@@ -24,17 +24,17 @@ - } - } - - pub(crate) struct WorkerStatesRegistry(Vec>); - - impl Deref for WorkerStatesRegistry { - type Target = Vec>; - fn deref(&self) -> &Self::Target { -- &self.0 -+ &Default::default() /* ~ changed by cargo-mutants ~ */ - } - } - - impl DerefMut for WorkerStatesRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) -error[E0515]: cannot return reference to temporary value - --> src/worker/state.rs:32:9 - | -32 | &Default::default() /* ~ changed by cargo-mutants ~ */ - | ^------------------ - | || - | |temporary value created here - | returns a reference to data owned by the current function - -For more information about this error, try `rustc --explain E0515`. -error: could not compile `faktory` (lib) due to 1 previous error -warning: build failed, waiting for other jobs to finish... -error: could not compile `faktory` (lib test) due to 1 previous error - -*** result: Failure(101) diff --git a/mutants.out/log/src__worker__state.rs_line_38_col_9.log b/mutants.out/log/src__worker__state.rs_line_38_col_9.log deleted file mode 100644 index 051acde1..00000000 --- a/mutants.out/log/src__worker__state.rs_line_38_col_9.log +++ /dev/null @@ -1,142 +0,0 @@ - -*** src/worker/state.rs:38:9: replace ::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) - -*** mutation diff: ---- src/worker/state.rs -+++ replace ::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) -@@ -30,17 +30,17 @@ - type Target = Vec>; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - - impl DerefMut for WorkerStatesRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { -- &mut self.0 -+ Box::leak(Box::new(Default::default())) /* ~ changed by cargo-mutants ~ */ - } - } - - impl WorkerStatesRegistry { - pub(crate) fn new(workers_count: usize) -> Self { - Self((0..workers_count).map(|_| Default::default()).collect()) - } - - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.03s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.24s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.33s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test no_first_job ... ok -test well_behaved ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.15s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batches_can_be_nested ... ok -test community::test_jobs_created_with_builder ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test community::hello_client ... ok -test community::hello_worker ... ok -test community::fail ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test community::enqueue_job ... ok -test enterprise::ent_expiring_job ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::roundtrip ... ok -test enterprise::ent_unique_job ... ok -test community::multi ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::test_jobs_pushed_in_bulk ... ok -test community::queue ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__worker__state.rs_line_48_col_9.log b/mutants.out/log/src__worker__state.rs_line_48_col_9.log deleted file mode 100644 index 4bd727c2..00000000 --- a/mutants.out/log/src__worker__state.rs_line_48_col_9.log +++ /dev/null @@ -1,96 +0,0 @@ - -*** src/worker/state.rs:48:9: replace WorkerStatesRegistry::register_running with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerStatesRegistry::register_running with () -@@ -40,17 +40,17 @@ - } - - impl WorkerStatesRegistry { - pub(crate) fn new(workers_count: usize) -> Self { - Self((0..workers_count).map(|_| Default::default()).collect()) - } - - pub(crate) fn register_running(&self, worker: usize, jid: JobId) { -- self[worker].lock().expect("lock acquired").running_job = Some(jid); -+ () /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn register_success(&self, worker: usize, jid: JobId) { - self[worker] - .lock() - .expect("lock acquired") - .save_last_result(Ok(jid)); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.02s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.25s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.23s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok -test terminate has been running for over 60 seconds - -*** result: Timeout diff --git a/mutants.out/log/src__worker__state.rs_line_52_col_9.log b/mutants.out/log/src__worker__state.rs_line_52_col_9.log deleted file mode 100644 index c6ec0b59..00000000 --- a/mutants.out/log/src__worker__state.rs_line_52_col_9.log +++ /dev/null @@ -1,145 +0,0 @@ - -*** src/worker/state.rs:52:9: replace WorkerStatesRegistry::register_success with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerStatesRegistry::register_success with () -@@ -44,20 +44,17 @@ - Self((0..workers_count).map(|_| Default::default()).collect()) - } - - pub(crate) fn register_running(&self, worker: usize, jid: JobId) { - self[worker].lock().expect("lock acquired").running_job = Some(jid); - } - - pub(crate) fn register_success(&self, worker: usize, jid: JobId) { -- self[worker] -- .lock() -- .expect("lock acquired") -- .save_last_result(Ok(jid)); -+ () /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { - self[worker] - .lock() - .expect("lock acquired") - .save_last_result(Err(f.clone())); - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 1.22s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.92s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.24s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue ... ok -test hello ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test no_first_job ... ok -test well_behaved_many ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.13s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test queue_control ... ok -test enqueue ... ok -test hello ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::ent_expiring_job ... ok -test community::hello_worker ... ok -test enterprise::ent_unique_job_until_start ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::test_batches_can_be_nested ... ok -test community::enqueue_job ... ok -test enterprise::ent_unique_job ... ok -test enterprise::ent_unique_job_until_success ... ok -test community::hello_client ... ok -test community::queue ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test community::fail ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::roundtrip ... ok -test community::multi ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test community::test_jobs_created_with_builder ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - -*** result: Success diff --git a/mutants.out/log/src__worker__state.rs_line_59_col_9.log b/mutants.out/log/src__worker__state.rs_line_59_col_9.log deleted file mode 100644 index e0494129..00000000 --- a/mutants.out/log/src__worker__state.rs_line_59_col_9.log +++ /dev/null @@ -1,145 +0,0 @@ - -*** src/worker/state.rs:59:9: replace WorkerStatesRegistry::register_failure with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerStatesRegistry::register_failure with () -@@ -51,20 +51,17 @@ - pub(crate) fn register_success(&self, worker: usize, jid: JobId) { - self[worker] - .lock() - .expect("lock acquired") - .save_last_result(Ok(jid)); - } - - pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { -- self[worker] -- .lock() -- .expect("lock acquired") -- .save_last_result(Err(f.clone())); -+ () /* ~ changed by cargo-mutants ~ */ - } - - pub(crate) fn reset(&self, worker: usize) { - let mut state = self[worker].lock().expect("lock acquired"); - state.last_job_result = None; - state.running_job = None; - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.88s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.25s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.04s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test dequeue_first_empty ... ok -test hello ... ok -test dequeue ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved ... ok -test well_behaved_many ... ok -test no_first_job ... ok - -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - - Running tests/producer.rs (target/debug/deps/producer-df2a4c85351204eb) - -running 4 tests -test hello ... ok -test queue_control ... ok -test enqueue ... ok -test hello_pwd ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running tests/real/main.rs (target/debug/deps/real-25004b966fe6ecc0) - -running 20 tests -test enterprise::test_batches_can_be_nested ... ok -test enterprise::ent_unique_job_until_start ... ok -test enterprise::ent_unique_job_until_success ... ok -test enterprise::test_batch_can_be_reopened_add_extra_jobs_and_batches_added ... ok -test enterprise::ent_unique_job_bypass_unique_lock ... ok -test enterprise::ent_expiring_job ... ok -test community::test_jobs_pushed_in_bulk ... ok -test enterprise::ent_unique_job ... ok -test community::hello_client ... ok -test community::queue ... ok -test community::roundtrip ... ok -test community::multi ... ok -test enterprise::test_callback_will_not_be_queued_unless_batch_gets_committed ... ok -test enterprise::test_callback_will_be_queued_upon_commit_even_if_batch_is_empty ... ok -test enterprise::test_batch_of_jobs_can_be_initiated ... ok -test community::hello_worker ... ok -test community::enqueue_job ... ok -test enterprise::test_tracker_can_send_and_retrieve_job_execution_progress ... ok -test community::test_jobs_created_with_builder ... ok -test community::fail ... ok - -test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s - - Running tests/tls.rs (target/debug/deps/tls-5b4e80b3c3ce326a) - -running 1 test -test roundtrip_tls ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -*** result: Success diff --git a/mutants.out/log/src__worker__state.rs_line_66_col_9.log b/mutants.out/log/src__worker__state.rs_line_66_col_9.log deleted file mode 100644 index 0221cd47..00000000 --- a/mutants.out/log/src__worker__state.rs_line_66_col_9.log +++ /dev/null @@ -1,123 +0,0 @@ - -*** src/worker/state.rs:66:9: replace WorkerStatesRegistry::reset with () - -*** mutation diff: ---- src/worker/state.rs -+++ replace WorkerStatesRegistry::reset with () -@@ -58,13 +58,11 @@ - pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { - self[worker] - .lock() - .expect("lock acquired") - .save_last_result(Err(f.clone())); - } - - pub(crate) fn reset(&self, worker: usize) { -- let mut state = self[worker].lock().expect("lock acquired"); -- state.last_job_result = None; -- state.running_job = None; -+ () /* ~ changed by cargo-mutants ~ */ - } - } - - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo build --tests --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished dev [unoptimized + debuginfo] target(s) in 0.99s - -*** result: Success - -*** /home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo test --manifest-path /tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml --locked --all-features --all-targets - Compiling faktory v0.12.5 (/tmp/cargo-mutants-faktory-rs-3ziugm.tmp) - Finished test [unoptimized + debuginfo] target(s) in 1.51s - Running unittests src/lib.rs (target/debug/deps/faktory-248e4bd4cd431a2c) - -running 35 tests -test proto::single::resp::test::it_errors_on_bad_json_string ... ok -test proto::single::resp::test::it_errors_on_bad_json_blob ... ok -test proto::batch::test::test_batch_creation ... ok -test proto::single::resp::test::it_decodes_json_empty ... ok -test proto::single::ent::test::test_expiration_feature_for_enterprise_faktory ... ok -test proto::single::ent::test::test_uniqueness_faeture_for_enterprise_faktory ... ok -test proto::single::ent::test::test_same_purpose_setters_applied_simultaneously ... ok -test proto::single::resp::test::it_decodes_json_nill ... ok -test proto::single::resp::test::it_decodes_json_ok_blob ... ok -test proto::single::resp::test::it_decodes_json_ok_string ... ok -test proto::single::resp::test::it_decodes_blob_json ... ok -test proto::single::resp::test::it_decodes_string_json ... ok -test proto::batch::test::test_batch_serialized_correctly ... ok -test proto::single::resp::test::it_errors_on_bad_numbers ... ok -test proto::single::resp::test::it_cant_do_arrays - should panic ... ok -test proto::single::resp::test::it_parses_errors ... ok -test proto::single::resp::test::it_errors_on_unknown_resp_type ... ok -test proto::single::resp::test::it_parses_simple_strings ... ok -test proto::single::resp::test::it_errors_on_bad_sizes ... ok -test proto::single::resp::test::it_parses_nills ... ok -test proto::single::resp::test::json_error_on_number ... ok -test proto::single::resp::test::it_parses_empty_bulk ... ok -test proto::single::test::test_job_can_be_created_with_builder ... ok -test proto::single::resp::test::it_parses_numbers ... ok -test proto::single::test::test_all_job_creation_variants_align ... ok -test proto::single::test::test_arbitrary_custom_data_setter ... ok -test proto::single::resp::test::it_parses_non_empty_bulk ... ok -test proto::single::utils::test::test_id_of_known_size_generated ... ok -test proto::utils::tests::url_doesnt_require_port ... ok -test proto::utils::tests::url_port_default ... ok -test proto::utils::tests::correct_env_parsing ... ok -test proto::utils::tests::url_requires_host ... ok -test proto::utils::tests::url_can_take_password_and_port ... ok -test proto::utils::tests::url_requires_tcp ... ok -test proto::single::utils::test::test_ids_are_unique ... ok - -test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.04s - - Running unittests src/bin/loadtest.rs (target/debug/deps/loadtest-c216a21f6a383186) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/consumer.rs (target/debug/deps/consumer-e1d67c7fdddceb0c) - -running 8 tests -test hello ... ok -test dequeue ... ok -test dequeue_first_empty ... ok -test hello_pwd ... ok -test terminate ... ok -test well_behaved_many ... FAILED -test no_first_job ... FAILED -test well_behaved ... FAILED - -failures: - ----- well_behaved_many stdout ---- -thread 'well_behaved_many' panicked at tests/consumer.rs:334:5: -assertion `left == right` failed - left: 2 - right: 0 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- no_first_job stdout ---- -thread 'no_first_job' panicked at tests/consumer.rs:259:5: -assertion `left == right` failed - left: 1 - right: 0 - ----- well_behaved stdout ---- -thread 'well_behaved' panicked at tests/consumer.rs:194:5: -assertion `left == right` failed - left: 1 - right: 0 - - -failures: - no_first_job - well_behaved - well_behaved_many - -test result: FAILED. 5 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s - -error: test failed, to rerun pass `--test consumer` - -*** result: Failure(101) diff --git a/mutants.out/missed.txt b/mutants.out/missed.txt deleted file mode 100644 index 09dba2fe..00000000 --- a/mutants.out/missed.txt +++ /dev/null @@ -1,70 +0,0 @@ -src/proto/single/id.rs:64:9: replace WorkerId::random -> Self with Default::default() -src/worker/state.rs:52:9: replace WorkerStatesRegistry::register_success with () -src/proto/single/ent/mod.rs:46:36: replace + with - in JobBuilder::expires_in -src/bin/loadtest.rs:78:28: replace == with != in main -src/proto/client/ent.rs:53:9: replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/mod.rs:23:5: replace check_protocols_match -> Result<(), Error> with Ok(()) -src/worker/state.rs:15:9: replace WorkerState::take_last_result -> Option> with None -src/proto/single/utils.rs:19:5: replace gen_random_wid -> String with String::new() -src/proto/single/resp.rs:69:5: replace read_bid -> Result with Ok(Default::default()) -src/proto/client/ent.rs:43:9: replace Client::commit_batch -> Result<(), Error> with Ok(()) -src/worker/mod.rs:178:9: replace Worker::report_failure_to_server -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::new()))) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) -src/proto/batch/handle.rs:44:9: replace BatchHandle<'a, S>::commit -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), "xyzzy".into())])))) -src/proto/single/cmd.rs:48:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/batch/handle.rs:27:9: replace BatchHandle<'a, S>::add -> Result, Error> with Ok(None) -src/proto/client/mod.rs:366:9: replace Client::info -> Result with Ok(Default::default()) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) -src/proto/batch/cmd.rs:8:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/single/ent/cmd.rs:15:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, None)) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) -src/worker/mod.rs:148:9: replace Worker::reconnect -> Result<(), Error> with Ok(()) -src/bin/loadtest.rs:109:36: replace * with / in main -src/bin/loadtest.rs:78:24: replace % with / in main -src/proto/single/resp.rs:194:49: replace - with + in read -src/bin/loadtest.rs:109:36: replace * with + in main -src/proto/single/cmd.rs:113:9: replace Fail::set_backtrace with () -src/proto/client/ent.rs:53:9: replace ReadToken<'a, S>::maybe_bid -> Result, Error> with Ok(None) -src/proto/single/utils.rs:19:5: replace gen_random_wid -> String with "xyzzy".into() -src/proto/batch/handle.rs:27:9: replace BatchHandle<'a, S>::add -> Result, Error> with Ok(Some(Default::default())) -src/proto/single/resp.rs:194:49: replace - with / in read -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([("xyzzy".into(), String::new())])))) -src/proto/single/mod.rs:260:9: replace Job::failure -> &Option with &None -src/worker/state.rs:38:9: replace ::deref_mut -> &mut Self::Target with Box::leak(Box::new(Default::default())) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::from_iter([(String::new(), String::new())])))) -src/proto/client/ent.rs:38:9: replace Client::open_batch -> Result>, Error> with Ok(None) -src/worker/mod.rs:186:9: replace Worker::report_on_all_workers -> Result<(), Error> with Ok(()) -src/bin/loadtest.rs:78:24: replace % with + in main -src/bin/loadtest.rs:93:70: replace >= with < in main -src/proto/client/mod.rs:402:9: replace ReadToken<'a, S>::read_ok -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:359:24: replace - with + in Client::enqueue_many -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, None)) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([("xyzzy".into(), "xyzzy".into())])))) -src/proto/utils.rs:23:33: replace || with && in url_parse -src/bin/loadtest.rs:110:38: replace / with * in main -src/proto/client/ent.rs:23:9: replace Client::get_batch_status -> Result, Error> with Ok(None) -src/bin/loadtest.rs:109:52: replace + with * in main -src/worker/runner.rs:76:9: replace ::run -> Result<(), E> with Ok(()) -src/proto/single/cmd.rs:270:9: replace ::issue -> Result<(), Error> with Ok(()) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((1, Some(HashMap::new()))) -src/proto/single/ent/progress.rs:102:9: replace ::fmt -> std::fmt::Result with Ok(Default::default()) -src/bin/loadtest.rs:15:5: replace main with () -src/bin/loadtest.rs:110:38: replace / with % in main -src/proto/client/ent.rs:17:9: replace Client::get_progress -> Result, Error> with Ok(None) -src/proto/batch/status.rs:90:9: replace BatchStatus::open -> Result>, Error> with Ok(None) -src/bin/loadtest.rs:109:52: replace + with - in main -src/proto/single/id.rs:84:9: replace ::from -> Self with Default::default() -src/proto/client/mod.rs:359:24: replace - with / in Client::enqueue_many -src/worker/state.rs:59:9: replace WorkerStatesRegistry::register_failure with () -src/worker/state.rs:23:9: replace WorkerState::save_last_result with () -src/proto/client/ent.rs:11:9: replace Client::set_progress -> Result<(), Error> with Ok(()) -src/proto/client/ent.rs:49:9: replace ReadToken<'a, S>::read_bid -> Result with Ok(Default::default()) -src/proto/client/mod.rs:348:9: replace Client::enqueue_many -> Result<(usize, Option>), Error> with Ok((0, Some(HashMap::from_iter([(String::new(), String::new())])))) -src/worker/runner.rs:63:9: replace >::run -> Result<(), E> with Ok(()) -src/bin/loadtest.rs:87:70: replace >= with < in main -src/proto/batch/status.rs:31:9: replace ::fmt -> std::fmt::Result with Ok(Default::default()) -src/proto/client/mod.rs:164:9: replace Client::reconnect -> Result<(), Error> with Ok(()) -src/proto/single/ent/utils.rs:13:5: replace parse_datetime -> Result>, D::Error> with Ok(None) diff --git a/mutants.out/mutants.json b/mutants.out/mutants.json deleted file mode 100644 index 96269252..00000000 --- a/mutants.out/mutants.json +++ /dev/null @@ -1,8312 +0,0 @@ -[ - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 162, - "column": 5 - }, - "end": { - "line": 166, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 165, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::connect", - "return_type": "-> Result, E>, Error>", - "span": { - "start": { - "line": 106, - "column": 5 - }, - "end": { - "line": 119, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 113, - "column": 9 - }, - "end": { - "line": 118, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 129, - "column": 5 - }, - "end": { - "line": 131, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 130, - "column": 9 - }, - "end": { - "line": 130, - "column": 21 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::deref_mut", - "return_type": "-> &mut Self::Target", - "span": { - "start": { - "line": 135, - "column": 5 - }, - "end": { - "line": 137, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 136, - "column": 9 - }, - "end": { - "line": 136, - "column": 25 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::connect", - "return_type": "-> Result", - "span": { - "start": { - "line": 38, - "column": 5 - }, - "end": { - "line": 57, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 56, - "column": 15 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "WorkerId::random", - "return_type": "-> Self", - "span": { - "start": { - "line": 62, - "column": 5 - }, - "end": { - "line": 65, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 64, - "column": 9 - }, - "end": { - "line": 64, - "column": 38 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::generic", - "return_type": "-> Self", - "span": { - "start": { - "line": 108, - "column": 5 - }, - "end": { - "line": 110, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 9 - }, - "end": { - "line": 109, - "column": 46 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_running", - "return_type": "", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 49, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 48, - "column": 9 - }, - "end": { - "line": 48, - "column": 77 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::register", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 65, - "column": 5 - }, - "end": { - "line": 78, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 76, - "column": 9 - }, - "end": { - "line": 77, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_success", - "return_type": "", - "span": { - "start": { - "line": 51, - "column": 5 - }, - "end": { - "line": 56, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 55, - "column": 40 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "bad", - "return_type": "-> error::Protocol", - "span": { - "start": { - "line": 7, - "column": 1 - }, - "end": { - "line": 30, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 8, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 36 - }, - "end": { - "line": 46, - "column": 37 - } - }, - "replacement": "-", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 28 - }, - "end": { - "line": 78, - "column": 30 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 39, - "column": 41 - }, - "end": { - "line": 39, - "column": 43 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": ">::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 90, - "column": 5 - }, - "end": { - "line": 92, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 91, - "column": 9 - }, - "end": { - "line": 91, - "column": 28 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::id", - "return_type": "-> &JobId", - "span": { - "start": { - "line": 243, - "column": 5 - }, - "end": { - "line": 246, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 245, - "column": 9 - }, - "end": { - "line": 245, - "column": 18 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::on_queue", - "return_type": "-> Self", - "span": { - "start": { - "line": 234, - "column": 5 - }, - "end": { - "line": 241, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 239, - "column": 9 - }, - "end": { - "line": 240, - "column": 13 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_complete_callback", - "return_type": "-> Batch", - "span": { - "start": { - "line": 190, - "column": 5 - }, - "end": { - "line": 195, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 192, - "column": 9 - }, - "end": { - "line": 194, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "Batch::builder", - "return_type": "-> BatchBuilder", - "span": { - "start": { - "line": 161, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 28 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::maybe_bid", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 52, - "column": 5 - }, - "end": { - "line": 68, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 67, - "column": 10 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "check_protocols_match", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 22, - "column": 1 - }, - "end": { - "line": 31, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 5 - }, - "end": { - "line": 30, - "column": 11 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "Progress::update_builder", - "return_type": "-> ProgressUpdateBuilder", - "span": { - "start": { - "line": 152, - "column": 5 - }, - "end": { - "line": 155, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 154, - "column": 9 - }, - "end": { - "line": 154, - "column": 53 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::failure", - "return_type": "-> &Option", - "span": { - "start": { - "line": 258, - "column": 5 - }, - "end": { - "line": 261, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 260, - "column": 9 - }, - "end": { - "line": 260, - "column": 22 - } - }, - "replacement": "&Some(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_last_result", - "return_type": "-> Option>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 15, - "column": 36 - } - }, - "replacement": "None", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_id", - "return_type": "-> String", - "span": { - "start": { - "line": 6, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 11, - "column": 19 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_wid", - "return_type": "-> String", - "span": { - "start": { - "line": 18, - "column": 1 - }, - "end": { - "line": 20, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 5 - }, - "end": { - "line": 19, - "column": 36 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_bid", - "return_type": "-> Result", - "span": { - "start": { - "line": 67, - "column": 1 - }, - "end": { - "line": 83, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 69, - "column": 5 - }, - "end": { - "line": 82, - "column": 6 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/mod.rs", - "function": { - "function_name": ">::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 52, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 50, - "column": 9 - }, - "end": { - "line": 51, - "column": 30 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 29 - }, - "end": { - "line": 148, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_batch_status", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 25, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 24, - "column": 50 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::args", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 165, - "column": 5 - }, - "end": { - "line": 173, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 171, - "column": 9 - }, - "end": { - "line": 172, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from(Default::default())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 238, - "column": 5 - }, - "end": { - "line": 240, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 239, - "column": 9 - }, - "end": { - "line": 239, - "column": 43 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::commit_batch", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 42, - "column": 5 - }, - "end": { - "line": 44, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 43, - "column": 9 - }, - "end": { - "line": 43, - "column": 67 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::workers", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 57, - "column": 5 - }, - "end": { - "line": 63, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 61, - "column": 9 - }, - "end": { - "line": 62, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 228, - "column": 9 - }, - "end": { - "line": 241, - "column": 16 - } - }, - "replacement": "1", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_failure_to_server", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 177, - "column": 5 - }, - "end": { - "line": 179, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 178, - "column": 9 - }, - "end": { - "line": 178, - "column": 47 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 160, - "column": 29 - }, - "end": { - "line": 160, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::new())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 358, - "column": 24 - }, - "end": { - "line": 358, - "column": 26 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 143, - "column": 5 - }, - "end": { - "line": 145, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 144, - "column": 9 - }, - "end": { - "line": 144, - "column": 43 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::build", - "return_type": "-> Job", - "span": { - "start": { - "line": 186, - "column": 5 - }, - "end": { - "line": 199, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 9 - }, - "end": { - "line": 198, - "column": 58 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::commit", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 45, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 44, - "column": 9 - }, - "end": { - "line": 44, - "column": 44 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 49, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 48, - "column": 9 - }, - "end": { - "line": 48, - "column": 44 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::add", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 27, - "column": 9 - }, - "end": { - "line": 28, - "column": 47 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::from(Ok(())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::init", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 228, - "column": 5 - }, - "end": { - "line": 266, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 229, - "column": 9 - }, - "end": { - "line": 265, - "column": 15 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::wid", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 41, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 45, - "column": 9 - }, - "end": { - "line": 46, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 29 - }, - "end": { - "line": 148, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::info", - "return_type": "-> Result", - "span": { - "start": { - "line": 362, - "column": 5 - }, - "end": { - "line": 371, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 366, - "column": 9 - }, - "end": { - "line": 370, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from_iter([Default::default()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::from_iter([Default::default()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 138, - "column": 5 - }, - "end": { - "line": 232, - "column": 6 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_one", - "return_type": "-> Result", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 276, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 249, - "column": 9 - }, - "end": { - "line": 275, - "column": 17 - } - }, - "replacement": "Ok(false)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::connect_again", - "return_type": "-> Result", - "span": { - "start": { - "line": 158, - "column": 5 - }, - "end": { - "line": 161, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 159, - "column": 9 - }, - "end": { - "line": 160, - "column": 48 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 328, - "column": 9 - }, - "end": { - "line": 373, - "column": 10 - } - }, - "replacement": "Ok(0)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "host_from_url", - "return_type": "-> String", - "span": { - "start": { - "line": 10, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 5 - }, - "end": { - "line": 11, - "column": 74 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::for_worker", - "return_type": "-> Result", - "span": { - "start": { - "line": 284, - "column": 5 - }, - "end": { - "line": 291, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 285, - "column": 9 - }, - "end": { - "line": 290, - "column": 11 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 305, - "column": 57 - }, - "end": { - "line": 305, - "column": 59 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::args", - "return_type": "-> &[serde_json::Value]", - "span": { - "start": { - "line": 253, - "column": 5 - }, - "end": { - "line": 256, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 255, - "column": 9 - }, - "end": { - "line": 255, - "column": 19 - } - }, - "replacement": "Vec::leak(Vec::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 12, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 8, - "column": 9 - }, - "end": { - "line": 11, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::labels", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 55, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 54, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 20, - "column": 9 - }, - "end": { - "line": 76, - "column": 10 - } - }, - "replacement": "Ok(false)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 28, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 27, - "column": 10 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from(Ok(1))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, None))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_callbacks", - "return_type": "-> Batch", - "span": { - "start": { - "line": 197, - "column": 5 - }, - "end": { - "line": 203, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 199, - "column": 9 - }, - "end": { - "line": 202, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from_iter([Ok(1)])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 20, - "column": 9 - }, - "end": { - "line": 76, - "column": 10 - } - }, - "replacement": "Ok(true)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_one", - "return_type": "-> Result", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 276, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 249, - "column": 9 - }, - "end": { - "line": 275, - "column": 17 - } - }, - "replacement": "Ok(true)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_at", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 12, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 25, - "column": 9 - }, - "end": { - "line": 28, - "column": 10 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 249, - "column": 5 - }, - "end": { - "line": 254, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 253, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 250, - "column": 5 - }, - "end": { - "line": 252, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 251, - "column": 9 - }, - "end": { - "line": 251, - "column": 29 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "get_env_url", - "return_type": "-> String", - "span": { - "start": { - "line": 4, - "column": 1 - }, - "end": { - "line": 8, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 5, - "column": 5 - }, - "end": { - "line": 7, - "column": 73 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::reconnect", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 147, - "column": 5 - }, - "end": { - "line": 149, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 9 - }, - "end": { - "line": 148, - "column": 33 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 36 - }, - "end": { - "line": 109, - "column": 37 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from(Default::default())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 206, - "column": 21 - }, - "end": { - "line": 206, - "column": 23 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::from(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::build", - "return_type": "-> Batch", - "span": { - "start": { - "line": 168, - "column": 5 - }, - "end": { - "line": 170, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 169, - "column": 9 - }, - "end": { - "line": 169, - "column": 65 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 109, - "column": 1 - }, - "end": { - "line": 118, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 5 - }, - "end": { - "line": 117, - "column": 38 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_hi", - "return_type": "-> Result", - "span": { - "start": { - "line": 97, - "column": 1 - }, - "end": { - "line": 105, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 98, - "column": 5 - }, - "end": { - "line": 104, - "column": 38 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_last_result", - "return_type": "-> Option>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 15, - "column": 36 - } - }, - "replacement": "Some(Ok(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new(Ok(0))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 24 - }, - "end": { - "line": 78, - "column": 25 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_until_start", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 63, - "column": 5 - }, - "end": { - "line": 70, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 69, - "column": 9 - }, - "end": { - "line": 69, - "column": 57 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from_iter([Default::default()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdateBuilder::build", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 57, - "column": 5 - }, - "end": { - "line": 61, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 59, - "column": 9 - }, - "end": { - "line": 60, - "column": 80 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "write_queues", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 26, - "column": 1 - }, - "end": { - "line": 39, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 38, - "column": 11 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 49 - }, - "end": { - "line": 194, - "column": 50 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 36 - }, - "end": { - "line": 109, - "column": 37 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "Progress::update_percent", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 142, - "column": 5 - }, - "end": { - "line": 150, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 149, - "column": 21 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::set_backtrace", - "return_type": "", - "span": { - "start": { - "line": 112, - "column": 5 - }, - "end": { - "line": 114, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 113, - "column": 9 - }, - "end": { - "line": 113, - "column": 32 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "JobId::random", - "return_type": "-> Self", - "span": { - "start": { - "line": 41, - "column": 5 - }, - "end": { - "line": 44, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 43, - "column": 9 - }, - "end": { - "line": 43, - "column": 38 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 62, - "column": 33 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 16, - "column": 21 - }, - "end": { - "line": 16, - "column": 23 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 232, - "column": 25 - }, - "end": { - "line": 232, - "column": 27 - } - }, - "replacement": "-=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new(Default::default())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 41, - "column": 41 - }, - "end": { - "line": 41, - "column": 42 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_progress", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 19, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 17, - "column": 9 - }, - "end": { - "line": 18, - "column": 50 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_id", - "return_type": "-> String", - "span": { - "start": { - "line": 6, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 11, - "column": 19 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::maybe_bid", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 52, - "column": 5 - }, - "end": { - "line": 68, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 67, - "column": 10 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::description", - "return_type": "-> Self", - "span": { - "start": { - "line": 177, - "column": 5 - }, - "end": { - "line": 181, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 179, - "column": 9 - }, - "end": { - "line": 180, - "column": 13 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_wid", - "return_type": "-> String", - "span": { - "start": { - "line": 18, - "column": 1 - }, - "end": { - "line": 20, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 5 - }, - "end": { - "line": 19, - "column": 36 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::queue_resume", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 384, - "column": 5 - }, - "end": { - "line": 393, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 389, - "column": 9 - }, - "end": { - "line": 392, - "column": 19 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::add", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 27, - "column": 9 - }, - "end": { - "line": 28, - "column": 47 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/mod.rs", - "function": { - "function_name": "::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 38, - "column": 5 - }, - "end": { - "line": 41, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 39, - "column": 9 - }, - "end": { - "line": 40, - "column": 41 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 405, - "column": 5 - }, - "end": { - "line": 410, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 409, - "column": 9 - }, - "end": { - "line": 409, - "column": 52 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 49 - }, - "end": { - "line": 194, - "column": 50 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_until_success", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 72, - "column": 5 - }, - "end": { - "line": 80, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 79, - "column": 9 - }, - "end": { - "line": 79, - "column": 59 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 172, - "column": 29 - }, - "end": { - "line": 172, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::id", - "return_type": "-> &BatchId", - "span": { - "start": { - "line": 12, - "column": 5 - }, - "end": { - "line": 15, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 14, - "column": 9 - }, - "end": { - "line": 14, - "column": 18 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::failure", - "return_type": "-> &Option", - "span": { - "start": { - "line": 258, - "column": 5 - }, - "end": { - "line": 261, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 260, - "column": 9 - }, - "end": { - "line": 260, - "column": 22 - } - }, - "replacement": "&None", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "::deref_mut", - "return_type": "-> &mut Self::Target", - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 39, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 38, - "column": 20 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "::clone", - "return_type": "-> Self", - "span": { - "start": { - "line": 207, - "column": 5 - }, - "end": { - "line": 214, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 208, - "column": 9 - }, - "end": { - "line": 213, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::fetch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 282, - "column": 5 - }, - "end": { - "line": 290, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 286, - "column": 9 - }, - "end": { - "line": 289, - "column": 19 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(String::new(), String::new())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 160, - "column": 29 - }, - "end": { - "line": 160, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::reset", - "return_type": "", - "span": { - "start": { - "line": 65, - "column": 5 - }, - "end": { - "line": 69, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 66, - "column": 9 - }, - "end": { - "line": 68, - "column": 34 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::kind", - "return_type": "-> &str", - "span": { - "start": { - "line": 248, - "column": 5 - }, - "end": { - "line": 251, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 250, - "column": 19 - } - }, - "replacement": "\"xyzzy\"", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::new(Ok(())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_on_all_workers", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 185, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 186, - "column": 9 - }, - "end": { - "line": 220, - "column": 15 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_jid", - "return_type": "-> String", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 16, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 15, - "column": 33 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 24 - }, - "end": { - "line": 78, - "column": 25 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::args", - "return_type": "-> &[serde_json::Value]", - "span": { - "start": { - "line": 253, - "column": 5 - }, - "end": { - "line": 256, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 255, - "column": 9 - }, - "end": { - "line": 255, - "column": 19 - } - }, - "replacement": "Vec::leak(vec![Default::default()])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 36 - }, - "end": { - "line": 46, - "column": 37 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 242, - "column": 5 - }, - "end": { - "line": 244, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 243, - "column": 9 - }, - "end": { - "line": 243, - "column": 16 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 93, - "column": 70 - }, - "end": { - "line": 93, - "column": 72 - } - }, - "replacement": "<", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "check_protocols_match", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 22, - "column": 1 - }, - "end": { - "line": 31, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 12 - }, - "end": { - "line": 23, - "column": 14 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 401, - "column": 5 - }, - "end": { - "line": 403, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 402, - "column": 9 - }, - "end": { - "line": 402, - "column": 50 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 109, - "column": 1 - }, - "end": { - "line": 118, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 112, - "column": 14 - }, - "end": { - "line": 112, - "column": 16 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 228, - "column": 9 - }, - "end": { - "line": 241, - "column": 16 - } - }, - "replacement": "0", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::add_to_custom_data", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 175, - "column": 5 - }, - "end": { - "line": 184, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 181, - "column": 9 - }, - "end": { - "line": 183, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 232, - "column": 25 - }, - "end": { - "line": 232, - "column": 27 - } - }, - "replacement": "*=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 359, - "column": 24 - }, - "end": { - "line": 359, - "column": 25 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 47, - "column": 39 - }, - "end": { - "line": 47, - "column": 41 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 173, - "column": 5 - }, - "end": { - "line": 175, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 174, - "column": 9 - }, - "end": { - "line": 174, - "column": 25 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 41, - "column": 41 - }, - "end": { - "line": 41, - "column": 42 - } - }, - "replacement": ">", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdate::set", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 42, - "column": 5 - }, - "end": { - "line": 45, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 44, - "column": 9 - }, - "end": { - "line": 44, - "column": 62 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_job", - "return_type": "-> Result<(), Failed>", - "span": { - "start": { - "line": 169, - "column": 5 - }, - "end": { - "line": 175, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 174, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::fetch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 282, - "column": 5 - }, - "end": { - "line": 290, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 286, - "column": 9 - }, - "end": { - "line": 289, - "column": 19 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, None))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 33 - }, - "end": { - "line": 23, - "column": 35 - } - }, - "replacement": "&&", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 38 - }, - "end": { - "line": 110, - "column": 39 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_jid", - "return_type": "-> String", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 16, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 15, - "column": 33 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::register_runner", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 80, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 89, - "column": 9 - }, - "end": { - "line": 90, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_success_to_server", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 181, - "column": 5 - }, - "end": { - "line": 183, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 182, - "column": 9 - }, - "end": { - "line": 182, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new(Default::default())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 172, - "column": 29 - }, - "end": { - "line": 172, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_batch_status", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 25, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 24, - "column": 50 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 246, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 245, - "column": 9 - }, - "end": { - "line": 245, - "column": 31 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::kind", - "return_type": "-> &str", - "span": { - "start": { - "line": 248, - "column": 5 - }, - "end": { - "line": 251, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 250, - "column": 19 - } - }, - "replacement": "\"\"", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 52 - }, - "end": { - "line": 109, - "column": 53 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::connect_with", - "return_type": "-> Result, E>, Error>", - "span": { - "start": { - "line": 93, - "column": 5 - }, - "end": { - "line": 104, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 99, - "column": 9 - }, - "end": { - "line": 103, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "parse_provided_or_from_env", - "return_type": "-> Result", - "span": { - "start": { - "line": 30, - "column": 1 - }, - "end": { - "line": 32, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 31, - "column": 45 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": "::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 75, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 76, - "column": 9 - }, - "end": { - "line": 76, - "column": 24 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "host_from_url", - "return_type": "-> String", - "span": { - "start": { - "line": 10, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 5 - }, - "end": { - "line": 11, - "column": 74 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 28, - "column": 23 - }, - "end": { - "line": 28, - "column": 25 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 269, - "column": 5 - }, - "end": { - "line": 274, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 270, - "column": 9 - }, - "end": { - "line": 273, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_cuurently_running", - "return_type": "-> Option", - "span": { - "start": { - "line": 18, - "column": 5 - }, - "end": { - "line": 20, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 9 - }, - "end": { - "line": 19, - "column": 32 - } - }, - "replacement": "None", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "write_command_and_await_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 271, - "column": 1 - }, - "end": { - "line": 280, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 5 - }, - "end": { - "line": 279, - "column": 26 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 9 - }, - "end": { - "line": 46, - "column": 42 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::new())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "::fmt", - "return_type": "-> std::fmt::Result", - "span": { - "start": { - "line": 101, - "column": 5 - }, - "end": { - "line": 112, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 102, - "column": 9 - }, - "end": { - "line": 111, - "column": 27 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 118, - "column": 34 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 38 - }, - "end": { - "line": 110, - "column": 39 - } - }, - "replacement": "%", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 190, - "column": 63 - }, - "end": { - "line": 190, - "column": 64 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 405, - "column": 5 - }, - "end": { - "line": 410, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 409, - "column": 9 - }, - "end": { - "line": 409, - "column": 52 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::with_connector", - "return_type": "-> Result", - "span": { - "start": { - "line": 59, - "column": 5 - }, - "end": { - "line": 70, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 63, - "column": 9 - }, - "end": { - "line": 69, - "column": 68 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 17 - }, - "end": { - "line": 29, - "column": 19 - } - }, - "replacement": "||", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from_iter([Ok(0)])", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_progress", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 19, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 17, - "column": 9 - }, - "end": { - "line": 18, - "column": 50 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::hostname", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 39, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 9 - }, - "end": { - "line": 38, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::generic_with_backtrace", - "return_type": "-> Self", - "span": { - "start": { - "line": 119, - "column": 5 - }, - "end": { - "line": 132, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 123, - "column": 9 - }, - "end": { - "line": 131, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::from_iter([Ok(())]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 236, - "column": 5 - }, - "end": { - "line": 238, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 237, - "column": 9 - }, - "end": { - "line": 237, - "column": 16 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 63 - }, - "end": { - "line": 31, - "column": 65 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 62, - "column": 33 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 322, - "column": 5 - }, - "end": { - "line": 327, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 326, - "column": 9 - }, - "end": { - "line": 326, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 52 - }, - "end": { - "line": 109, - "column": 53 - } - }, - "replacement": "-", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 297, - "column": 5 - }, - "end": { - "line": 305, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 298, - "column": 9 - }, - "end": { - "line": 304, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 85, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 84, - "column": 9 - }, - "end": { - "line": 84, - "column": 23 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::new(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": ">::drop", - "return_type": "", - "span": { - "start": { - "line": 173, - "column": 5 - }, - "end": { - "line": 181, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 174, - "column": 9 - }, - "end": { - "line": 180, - "column": 12 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new(Ok(1))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 359, - "column": 24 - }, - "end": { - "line": 359, - "column": 25 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new()]))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_failure", - "return_type": "", - "span": { - "start": { - "line": 58, - "column": 5 - }, - "end": { - "line": 63, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 59, - "column": 9 - }, - "end": { - "line": 62, - "column": 47 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::new()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::save_last_result", - "return_type": "", - "span": { - "start": { - "line": 22, - "column": 5 - }, - "end": { - "line": 24, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 23, - "column": 41 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::set_progress", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 9, - "column": 5 - }, - "end": { - "line": 13, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 9 - }, - "end": { - "line": 12, - "column": 48 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 115, - "column": 5 - }, - "end": { - "line": 124, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 116, - "column": 9 - }, - "end": { - "line": 123, - "column": 72 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_cuurently_running", - "return_type": "-> Option", - "span": { - "start": { - "line": 18, - "column": 5 - }, - "end": { - "line": 20, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 9 - }, - "end": { - "line": 19, - "column": 32 - } - }, - "replacement": "Some(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from(Ok(0))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 27, - "column": 12 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::default", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 77, - "column": 5 - }, - "end": { - "line": 88, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 83, - "column": 9 - }, - "end": { - "line": 87, - "column": 53 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_bid", - "return_type": "-> Result", - "span": { - "start": { - "line": 48, - "column": 5 - }, - "end": { - "line": 50, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 49, - "column": 9 - }, - "end": { - "line": 49, - "column": 51 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 190, - "column": 63 - }, - "end": { - "line": 190, - "column": 64 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::from_iter([Default::default()])))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::builder", - "return_type": "-> JobBuilder", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 232, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 231, - "column": 9 - }, - "end": { - "line": 231, - "column": 30 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(String::new(), String::new())]))))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": ">::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 62, - "column": 5 - }, - "end": { - "line": 64, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 63, - "column": 9 - }, - "end": { - "line": 63, - "column": 24 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Hello::set_password", - "return_type": "", - "span": { - "start": { - "line": 214, - "column": 5 - }, - "end": { - "line": 224, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 215, - "column": 9 - }, - "end": { - "line": 223, - "column": 58 - } - }, - "replacement": "()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_success_callback", - "return_type": "-> Batch", - "span": { - "start": { - "line": 183, - "column": 5 - }, - "end": { - "line": 188, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 185, - "column": 9 - }, - "end": { - "line": 187, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 262, - "column": 5 - }, - "end": { - "line": 264, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 263, - "column": 9 - }, - "end": { - "line": 263, - "column": 23 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::queue_pause", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 373, - "column": 5 - }, - "end": { - "line": 382, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 378, - "column": 9 - }, - "end": { - "line": 381, - "column": 19 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 328, - "column": 9 - }, - "end": { - "line": 373, - "column": 10 - } - }, - "replacement": "Ok(1)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::new())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::from(Default::default())))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 87, - "column": 70 - }, - "end": { - "line": 87, - "column": 72 - } - }, - "replacement": "<", - "genre": "BinaryOperator" - }, - { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 33, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 32, - "column": 9 - }, - "end": { - "line": 32, - "column": 16 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "::fmt", - "return_type": "-> std::fmt::Result", - "span": { - "start": { - "line": 30, - "column": 5 - }, - "end": { - "line": 38, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 9 - }, - "end": { - "line": 37, - "column": 27 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "get_env_url", - "return_type": "-> String", - "span": { - "start": { - "line": 4, - "column": 1 - }, - "end": { - "line": 8, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 5, - "column": 5 - }, - "end": { - "line": 7, - "column": 73 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdate::builder", - "return_type": "-> ProgressUpdateBuilder", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 53, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 52, - "column": 40 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::heartbeat", - "return_type": "-> Result", - "span": { - "start": { - "line": 292, - "column": 5 - }, - "end": { - "line": 315, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 293, - "column": 9 - }, - "end": { - "line": 314, - "column": 10 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_for", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 61, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 60, - "column": 9 - }, - "end": { - "line": 60, - "column": 52 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "write_command", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 263, - "column": 1 - }, - "end": { - "line": 269, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 267, - "column": 5 - }, - "end": { - "line": 268, - "column": 25 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::reconnect", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 163, - "column": 5 - }, - "end": { - "line": 166, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 164, - "column": 9 - }, - "end": { - "line": 165, - "column": 26 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - }, - { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new())", - "genre": "FnValue" - } -] \ No newline at end of file diff --git a/mutants.out/outcomes.json b/mutants.out/outcomes.json deleted file mode 100644 index 933ba5ab..00000000 --- a/mutants.out/outcomes.json +++ /dev/null @@ -1,17242 +0,0 @@ -{ - "outcomes": [ - { - "scenario": "Baseline", - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/baseline.log", - "summary": "Success", - "phase_results": [ - { - "phase": "Build", - "duration": 5.568073674, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 18.154949937, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_146_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.152324289, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.553971074, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 162, - "column": 5 - }, - "end": { - "line": 166, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 165, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_163_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.103318216, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.144564143, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::connect", - "return_type": "-> Result, E>, Error>", - "span": { - "start": { - "line": 106, - "column": 5 - }, - "end": { - "line": 119, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 113, - "column": 9 - }, - "end": { - "line": 118, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_113_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201520252, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 129, - "column": 5 - }, - "end": { - "line": 131, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 130, - "column": 9 - }, - "end": { - "line": 130, - "column": 21 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_130_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.002967756, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.302278323, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101449146, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.25206264, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::deref_mut", - "return_type": "-> &mut Self::Target", - "span": { - "start": { - "line": 135, - "column": 5 - }, - "end": { - "line": 137, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 136, - "column": 9 - }, - "end": { - "line": 136, - "column": 25 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_136_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101583327, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.301948693, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302270614, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::connect", - "return_type": "-> Result", - "span": { - "start": { - "line": 38, - "column": 5 - }, - "end": { - "line": 57, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 56, - "column": 15 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_52_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903573754, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.302017263, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "WorkerId::random", - "return_type": "-> Self", - "span": { - "start": { - "line": 62, - "column": 5 - }, - "end": { - "line": 65, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 64, - "column": 9 - }, - "end": { - "line": 64, - "column": 38 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__id.rs_line_64_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.003182871, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.945354416, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::generic", - "return_type": "-> Self", - "span": { - "start": { - "line": 108, - "column": 5 - }, - "end": { - "line": 110, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 9 - }, - "end": { - "line": 109, - "column": 46 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_109_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352474757, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_running", - "return_type": "", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 49, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 48, - "column": 9 - }, - "end": { - "line": 48, - "column": 77 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_48_col_9.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.053168771, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.047242403, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::register", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 65, - "column": 5 - }, - "end": { - "line": 78, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 76, - "column": 9 - }, - "end": { - "line": 77, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_76_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054639294, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.914384782, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_success", - "return_type": "", - "span": { - "start": { - "line": 51, - "column": 5 - }, - "end": { - "line": 56, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 55, - "column": 40 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_52_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.254529433, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.4950039, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "bad", - "return_type": "-> error::Protocol", - "span": { - "start": { - "line": 7, - "column": 1 - }, - "end": { - "line": 30, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 8, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_8_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352861933, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 36 - }, - "end": { - "line": 46, - "column": 37 - } - }, - "replacement": "-", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.852736454, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.944472468, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 28 - }, - "end": { - "line": 78, - "column": 30 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_78_col_28.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.152251169, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.34794211, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 39, - "column": 41 - }, - "end": { - "line": 39, - "column": 43 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_39_col_41.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.105516207, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.6687389, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": ">::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 90, - "column": 5 - }, - "end": { - "line": 92, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 91, - "column": 9 - }, - "end": { - "line": 91, - "column": 28 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__runner.rs_line_91_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154950672, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.970835095, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::id", - "return_type": "-> &JobId", - "span": { - "start": { - "line": 243, - "column": 5 - }, - "end": { - "line": 246, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 245, - "column": 9 - }, - "end": { - "line": 245, - "column": 18 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_245_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252565022, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_278_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251795821, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::on_queue", - "return_type": "-> Self", - "span": { - "start": { - "line": 234, - "column": 5 - }, - "end": { - "line": 241, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 239, - "column": 9 - }, - "end": { - "line": 240, - "column": 13 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_239_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302557289, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_complete_callback", - "return_type": "-> Batch", - "span": { - "start": { - "line": 190, - "column": 5 - }, - "end": { - "line": 195, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 192, - "column": 9 - }, - "end": { - "line": 194, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_192_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.954132073, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.301596452, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302142905, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "Batch::builder", - "return_type": "-> BatchBuilder", - "span": { - "start": { - "line": 161, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 28 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_163_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.853802854, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.20153998, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252425137, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::maybe_bid", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 52, - "column": 5 - }, - "end": { - "line": 68, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 67, - "column": 10 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_53_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.852503548, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.993764467, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "check_protocols_match", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 22, - "column": 1 - }, - "end": { - "line": 31, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 5 - }, - "end": { - "line": 30, - "column": 11 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_23_col_5.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.204954429, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.447571201, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "Progress::update_builder", - "return_type": "-> ProgressUpdateBuilder", - "span": { - "start": { - "line": 152, - "column": 5 - }, - "end": { - "line": 155, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 154, - "column": 9 - }, - "end": { - "line": 154, - "column": 53 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_154_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.306063546, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.352798398, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::failure", - "return_type": "-> &Option", - "span": { - "start": { - "line": 258, - "column": 5 - }, - "end": { - "line": 261, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 260, - "column": 9 - }, - "end": { - "line": 260, - "column": 22 - } - }, - "replacement": "&Some(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_260_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.151085398, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_last_result", - "return_type": "-> Option>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 15, - "column": 36 - } - }, - "replacement": "None", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_15_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903701859, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.563383025, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_id", - "return_type": "-> String", - "span": { - "start": { - "line": 6, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 11, - "column": 19 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_7_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.00478872, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 1.5062111329999999, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_wid", - "return_type": "-> String", - "span": { - "start": { - "line": 18, - "column": 1 - }, - "end": { - "line": 20, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 5 - }, - "end": { - "line": 19, - "column": 36 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_19_col_5.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.955301539, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.702437624, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_bid", - "return_type": "-> Result", - "span": { - "start": { - "line": 67, - "column": 1 - }, - "end": { - "line": 83, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 69, - "column": 5 - }, - "end": { - "line": 82, - "column": 6 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_69_col_5.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.255378763, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.309182073, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/mod.rs", - "function": { - "function_name": ">::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 52, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 50, - "column": 9 - }, - "end": { - "line": 51, - "column": 30 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__mod.rs_line_50_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302768405, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 29 - }, - "end": { - "line": 148, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_148_col_29.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.254272365, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.817040066, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_batch_status", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 25, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 24, - "column": 50 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_23_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.105022366, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.252525364, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::args", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 165, - "column": 5 - }, - "end": { - "line": 173, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 171, - "column": 9 - }, - "end": { - "line": 172, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_171_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.202100615, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from(Default::default())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252689387, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251879041, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.804243936, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.303166035, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 238, - "column": 5 - }, - "end": { - "line": 240, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 239, - "column": 9 - }, - "end": { - "line": 239, - "column": 43 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_239_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201802865, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::commit_batch", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 42, - "column": 5 - }, - "end": { - "line": 44, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 43, - "column": 9 - }, - "end": { - "line": 43, - "column": 67 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_43_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803218169, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.364420551, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::workers", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 57, - "column": 5 - }, - "end": { - "line": 63, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 61, - "column": 9 - }, - "end": { - "line": 62, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_61_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.005310112, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.968034775, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 228, - "column": 9 - }, - "end": { - "line": 241, - "column": 16 - } - }, - "replacement": "1", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_228_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154743225, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.804493015, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.301921408, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_failure_to_server", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 177, - "column": 5 - }, - "end": { - "line": 179, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 178, - "column": 9 - }, - "end": { - "line": 178, - "column": 47 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_178_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.204848758, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.060419059, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 160, - "column": 29 - }, - "end": { - "line": 160, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_160_col_29.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154867979, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.967524514, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::new())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.155124309, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.112655301, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.954320203, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.809940915, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252663087, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 358, - "column": 24 - }, - "end": { - "line": 358, - "column": 26 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_358_col_24.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.052914463, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.03922367, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_29_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054266402, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.301696541, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 143, - "column": 5 - }, - "end": { - "line": 145, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 144, - "column": 9 - }, - "end": { - "line": 144, - "column": 43 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_144_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.904123209, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.451297138, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::build", - "return_type": "-> Job", - "span": { - "start": { - "line": 186, - "column": 5 - }, - "end": { - "line": 199, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 9 - }, - "end": { - "line": 198, - "column": 58 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_194_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252364673, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::commit", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 45, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 44, - "column": 9 - }, - "end": { - "line": 44, - "column": 44 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_44_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.904436969, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.661582339, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(String::new(), \"xyzzy\".into())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_002.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.055200954, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.762370592, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 49, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 48, - "column": 9 - }, - "end": { - "line": 48, - "column": 44 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_48_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054743439, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.808766408, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::add", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 27, - "column": 9 - }, - "end": { - "line": 28, - "column": 47 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903272986, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.097381742, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::from(Ok(())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_302_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252354457, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::init", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 228, - "column": 5 - }, - "end": { - "line": 266, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 229, - "column": 9 - }, - "end": { - "line": 265, - "column": 15 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_229_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.4555198950000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 5.370470813, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::wid", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 41, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 45, - "column": 9 - }, - "end": { - "line": 46, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_45_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.5568494099999999, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.753494007, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_146_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.954075377, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.453251007, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 29 - }, - "end": { - "line": 148, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_148_col_29_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.053794897, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.765297172, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::info", - "return_type": "-> Result", - "span": { - "start": { - "line": 362, - "column": 5 - }, - "end": { - "line": 371, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 366, - "column": 9 - }, - "end": { - "line": 370, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_366_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.053957154, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.149729902, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_003.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104031165, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.158394086, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from_iter([Default::default()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.205308095, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.301797479, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::from_iter([Default::default()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.25228225, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 138, - "column": 5 - }, - "end": { - "line": 232, - "column": 6 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_138_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201389875, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_one", - "return_type": "-> Result", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 276, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 249, - "column": 9 - }, - "end": { - "line": 275, - "column": 17 - } - }, - "replacement": "Ok(false)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_249_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.255581257, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.050639345, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::connect_again", - "return_type": "-> Result", - "span": { - "start": { - "line": 158, - "column": 5 - }, - "end": { - "line": 161, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 159, - "column": 9 - }, - "end": { - "line": 160, - "column": 48 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_159_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352363961, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 328, - "column": 9 - }, - "end": { - "line": 373, - "column": 10 - } - }, - "replacement": "Ok(0)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_328_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.305537757, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 5.016578372, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302843515, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "host_from_url", - "return_type": "-> String", - "span": { - "start": { - "line": 10, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 5 - }, - "end": { - "line": 11, - "column": 74 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_11_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.205102422, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.563204642, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::for_worker", - "return_type": "-> Result", - "span": { - "start": { - "line": 284, - "column": 5 - }, - "end": { - "line": 291, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 285, - "column": 9 - }, - "end": { - "line": 290, - "column": 11 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_285_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201274995, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 305, - "column": 57 - }, - "end": { - "line": 305, - "column": 59 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_305_col_57.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004276377, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.8648899530000005, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::args", - "return_type": "-> &[serde_json::Value]", - "span": { - "start": { - "line": 253, - "column": 5 - }, - "end": { - "line": 256, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 255, - "column": 9 - }, - "end": { - "line": 255, - "column": 19 - } - }, - "replacement": "Vec::leak(Vec::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_255_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.204786889, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.76066351, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 12, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 8, - "column": 9 - }, - "end": { - "line": 11, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__cmd.rs_line_8_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.904421911, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.108930388, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::labels", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 55, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 54, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_53_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.954616445, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.613040914, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 20, - "column": 9 - }, - "end": { - "line": 76, - "column": 10 - } - }, - "replacement": "Ok(false)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_20_col_9.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.155493548, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.051024543, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_170_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054523735, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.501822281, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_170_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101584358, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.402540517, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 28, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 27, - "column": 10 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__cmd.rs_line_15_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.051159277, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.70578792, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from(Ok(1))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101752675, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.453422174, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252620319, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803617443, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.252699074, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, None))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_004.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054854077, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.061879936, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_callbacks", - "return_type": "-> Batch", - "span": { - "start": { - "line": 197, - "column": 5 - }, - "end": { - "line": 203, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 199, - "column": 9 - }, - "end": { - "line": 202, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_199_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.254693778, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.20150086, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from_iter([Ok(1)])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101197424, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.45259473, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 20, - "column": 9 - }, - "end": { - "line": 76, - "column": 10 - } - }, - "replacement": "Ok(true)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_20_col_9_001.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.103999531, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.016335931, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_one", - "return_type": "-> Result", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 276, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 249, - "column": 9 - }, - "end": { - "line": 275, - "column": 17 - } - }, - "replacement": "Ok(true)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_249_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104923559, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.756817444, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_at", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 12, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 25, - "column": 9 - }, - "end": { - "line": 28, - "column": 10 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_25_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.454901811, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.403008315, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 249, - "column": 5 - }, - "end": { - "line": 254, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 253, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_250_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004649982, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.100467694, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_005.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.204626658, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.060215483, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 250, - "column": 5 - }, - "end": { - "line": 252, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 251, - "column": 9 - }, - "end": { - "line": 251, - "column": 29 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_251_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252428604, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "get_env_url", - "return_type": "-> String", - "span": { - "start": { - "line": 4, - "column": 1 - }, - "end": { - "line": 8, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 5, - "column": 5 - }, - "end": { - "line": 7, - "column": 73 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_5_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104079283, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.764044577, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903506685, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.402339161, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::reconnect", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 147, - "column": 5 - }, - "end": { - "line": 149, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 148, - "column": 9 - }, - "end": { - "line": 148, - "column": 33 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_148_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803644659, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.698311448, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 36 - }, - "end": { - "line": 109, - "column": 37 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_109_col_36.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.00460882, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.005831872, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from(Default::default())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_004.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302283992, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_170_col_9_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903414062, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.452754065, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 206, - "column": 21 - }, - "end": { - "line": 206, - "column": 23 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_206_col_21.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.103962388, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.667378343, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::issue", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 274, - "column": 5 - }, - "end": { - "line": 280, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 9 - }, - "end": { - "line": 279, - "column": 28 - } - }, - "replacement": "Ok(ReadToken::from(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_278_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251949899, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::build", - "return_type": "-> Batch", - "span": { - "start": { - "line": 168, - "column": 5 - }, - "end": { - "line": 170, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 169, - "column": 9 - }, - "end": { - "line": 169, - "column": 65 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_169_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.205623955, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.253461954, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 109, - "column": 1 - }, - "end": { - "line": 118, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 5 - }, - "end": { - "line": 117, - "column": 38 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_110_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054625326, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.860823038, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_hi", - "return_type": "-> Result", - "span": { - "start": { - "line": 97, - "column": 1 - }, - "end": { - "line": 105, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 98, - "column": 5 - }, - "end": { - "line": 104, - "column": 38 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_98_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.25199533, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_004.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352840952, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_last_result", - "return_type": "-> Option>", - "span": { - "start": { - "line": 14, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 9 - }, - "end": { - "line": 15, - "column": 36 - } - }, - "replacement": "Some(Ok(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_15_col_9_001.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.2047388940000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.031271948, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new(Ok(0))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_003.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.953987701, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.402237493, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.10197123, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.302239397, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 24 - }, - "end": { - "line": 78, - "column": 25 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_78_col_24.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.05102779, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.94653687, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_until_start", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 63, - "column": 5 - }, - "end": { - "line": 70, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 69, - "column": 9 - }, - "end": { - "line": 69, - "column": 57 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_69_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.152216096, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.252431022, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from_iter([Default::default()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101054135, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.35258859, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdateBuilder::build", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 57, - "column": 5 - }, - "end": { - "line": 61, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 59, - "column": 9 - }, - "end": { - "line": 60, - "column": 80 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_59_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.10131683, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.252583846, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "write_queues", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 26, - "column": 1 - }, - "end": { - "line": 39, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 38, - "column": 11 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_33_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.053186229, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.90711178, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 49 - }, - "end": { - "line": 194, - "column": 50 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_194_col_49.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154867664, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.917885497, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 36 - }, - "end": { - "line": 109, - "column": 37 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_109_col_36_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.254350888, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.151753172, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "Progress::update_percent", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 142, - "column": 5 - }, - "end": { - "line": 150, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 149, - "column": 21 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_146_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101978829, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.30182897, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::set_backtrace", - "return_type": "", - "span": { - "start": { - "line": 112, - "column": 5 - }, - "end": { - "line": 114, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 113, - "column": 9 - }, - "end": { - "line": 113, - "column": 32 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_113_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.90425423, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.001341046, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "JobId::random", - "return_type": "-> Self", - "span": { - "start": { - "line": 41, - "column": 5 - }, - "end": { - "line": 44, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 43, - "column": 9 - }, - "end": { - "line": 43, - "column": 38 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__id.rs_line_43_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.953769961, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.763845106, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 62, - "column": 33 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_37_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251857087, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_005.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201394043, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 16, - "column": 21 - }, - "end": { - "line": 16, - "column": 23 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_16_col_21.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903867297, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.665769489, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.802461062, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201709313, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 232, - "column": 25 - }, - "end": { - "line": 232, - "column": 27 - } - }, - "replacement": "-=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_232_col_25.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.053837992, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.706164632, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new(Default::default())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_006.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252885653, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 41, - "column": 41 - }, - "end": { - "line": 41, - "column": 42 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_41_col_41.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.953454535, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.565557939, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_progress", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 19, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 17, - "column": 9 - }, - "end": { - "line": 18, - "column": 50 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_17_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.954934582, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201519875, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_id", - "return_type": "-> String", - "span": { - "start": { - "line": 6, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 7, - "column": 5 - }, - "end": { - "line": 11, - "column": 19 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_7_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.90399188, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 1.505590294, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::maybe_bid", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 52, - "column": 5 - }, - "end": { - "line": 68, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 53, - "column": 9 - }, - "end": { - "line": 67, - "column": 10 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_53_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.90419194, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.899870871, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101930814, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201695266, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::description", - "return_type": "-> Self", - "span": { - "start": { - "line": 177, - "column": 5 - }, - "end": { - "line": 181, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 179, - "column": 9 - }, - "end": { - "line": 180, - "column": 13 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_179_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.051043915, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201148988, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_007.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201077628, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_wid", - "return_type": "-> String", - "span": { - "start": { - "line": 18, - "column": 1 - }, - "end": { - "line": 20, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 5 - }, - "end": { - "line": 19, - "column": 36 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_19_col_5_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.90325976, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.250966491, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_008.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302809396, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::queue_resume", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 384, - "column": 5 - }, - "end": { - "line": 393, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 389, - "column": 9 - }, - "end": { - "line": 392, - "column": 19 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_389_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.10388719, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.716148431, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::add", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 29, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 27, - "column": 9 - }, - "end": { - "line": 28, - "column": 47 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_27_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.005030044, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.95612528, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/mod.rs", - "function": { - "function_name": "::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 38, - "column": 5 - }, - "end": { - "line": 41, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 39, - "column": 9 - }, - "end": { - "line": 40, - "column": 41 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__mod.rs_line_39_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251933905, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 405, - "column": 5 - }, - "end": { - "line": 410, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 409, - "column": 9 - }, - "end": { - "line": 409, - "column": 52 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_409_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.00446326, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.758571483, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 194, - "column": 49 - }, - "end": { - "line": 194, - "column": 50 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_194_col_49_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.355978336, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.410157004, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(\"xyzzy\".into(), String::new())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_006.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.204768236, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.054792599, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_until_success", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 72, - "column": 5 - }, - "end": { - "line": 80, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 79, - "column": 9 - }, - "end": { - "line": 79, - "column": 59 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_79_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.10442342, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.251917674, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_005.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251985199, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 172, - "column": 29 - }, - "end": { - "line": 172, - "column": 30 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_172_col_29.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054291125, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.970300892, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::id", - "return_type": "-> &BatchId", - "span": { - "start": { - "line": 12, - "column": 5 - }, - "end": { - "line": 15, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 14, - "column": 9 - }, - "end": { - "line": 14, - "column": 18 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_14_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054529298, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.302487712, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::failure", - "return_type": "-> &Option", - "span": { - "start": { - "line": 258, - "column": 5 - }, - "end": { - "line": 261, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 260, - "column": 9 - }, - "end": { - "line": 260, - "column": 22 - } - }, - "replacement": "&None", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_260_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.853869829, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.019706552, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "::deref_mut", - "return_type": "-> &mut Self::Target", - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 39, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 38, - "column": 20 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_38_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.05496941, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.846508768, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903339646, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201717695, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "::clone", - "return_type": "-> Self", - "span": { - "start": { - "line": 207, - "column": 5 - }, - "end": { - "line": 214, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 208, - "column": 9 - }, - "end": { - "line": 213, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_208_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.051149418, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201366549, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::fetch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 282, - "column": 5 - }, - "end": { - "line": 290, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 286, - "column": 9 - }, - "end": { - "line": 289, - "column": 19 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_286_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.202315523, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_006.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252094774, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_007.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.203126531, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::from_iter([(String::new(), String::new())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_007.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.204445113, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.503809377, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 160, - "column": 29 - }, - "end": { - "line": 160, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_160_col_29_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.205116668, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.61749782, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::reset", - "return_type": "", - "span": { - "start": { - "line": 65, - "column": 5 - }, - "end": { - "line": 69, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 66, - "column": 9 - }, - "end": { - "line": 68, - "column": 34 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_66_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004430691, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.761706478, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.854661207, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.905502755, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::kind", - "return_type": "-> &str", - "span": { - "start": { - "line": 248, - "column": 5 - }, - "end": { - "line": 251, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 250, - "column": 19 - } - }, - "replacement": "\"xyzzy\"", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_250_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.853662986, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.666319767, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::new(Ok(())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_302_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.25273808, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_on_all_workers", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 185, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 186, - "column": 9 - }, - "end": { - "line": 220, - "column": 15 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_186_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.254325767, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.963772031, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_jid", - "return_type": "-> String", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 16, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 15, - "column": 33 - } - }, - "replacement": "String::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_15_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.155507228, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.968645696, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 78, - "column": 24 - }, - "end": { - "line": 78, - "column": 25 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_78_col_24_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.805117003, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.574632678, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::args", - "return_type": "-> &[serde_json::Value]", - "span": { - "start": { - "line": 253, - "column": 5 - }, - "end": { - "line": 256, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 255, - "column": 9 - }, - "end": { - "line": 255, - "column": 19 - } - }, - "replacement": "Vec::leak(vec![Default::default()])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_255_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.954940549, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.521278857, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 36 - }, - "end": { - "line": 46, - "column": 37 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_36_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903732085, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.251811397, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 242, - "column": 5 - }, - "end": { - "line": 244, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 243, - "column": 9 - }, - "end": { - "line": 243, - "column": 16 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_243_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201522303, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 93, - "column": 70 - }, - "end": { - "line": 93, - "column": 72 - } - }, - "replacement": "<", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_93_col_70.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803861422, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.804614043, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "check_protocols_match", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 22, - "column": 1 - }, - "end": { - "line": 31, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 12 - }, - "end": { - "line": 23, - "column": 14 - } - }, - "replacement": "==", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_23_col_12.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803415977, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.768142246, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_146_col_9_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.804568545, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.453640597, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 401, - "column": 5 - }, - "end": { - "line": 403, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 402, - "column": 9 - }, - "end": { - "line": 402, - "column": 50 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_402_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054190703, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.864418476, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 109, - "column": 1 - }, - "end": { - "line": 118, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 112, - "column": 14 - }, - "end": { - "line": 112, - "column": 16 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_112_col_14.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104615438, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.817082712, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 228, - "column": 9 - }, - "end": { - "line": 241, - "column": 16 - } - }, - "replacement": "0", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_228_col_9_001.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.155451679, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.047580555, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "JobBuilder::add_to_custom_data", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 175, - "column": 5 - }, - "end": { - "line": 184, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 181, - "column": 9 - }, - "end": { - "line": 183, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_181_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352867285, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::force_fail_all_workers", - "return_type": "-> usize", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 242, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 232, - "column": 25 - }, - "end": { - "line": 232, - "column": 27 - } - }, - "replacement": "*=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_232_col_25_001.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.2546306280000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.015907864, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_read", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 141, - "column": 5 - }, - "end": { - "line": 147, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 146, - "column": 9 - }, - "end": { - "line": 146, - "column": 49 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_146_col_9_003.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054212633, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.452932755, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 359, - "column": 24 - }, - "end": { - "line": 359, - "column": 25 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_359_col_24.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104399465, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.005966872, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 47, - "column": 39 - }, - "end": { - "line": 47, - "column": 41 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_47_col_39.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.204665143, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.816331664, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 173, - "column": 5 - }, - "end": { - "line": 175, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 174, - "column": 9 - }, - "end": { - "line": 174, - "column": 25 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_174_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.352281999, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 41, - "column": 41 - }, - "end": { - "line": 41, - "column": 42 - } - }, - "replacement": ">", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_41_col_41_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.204375253, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 5.266835973, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdate::set", - "return_type": "-> ProgressUpdate", - "span": { - "start": { - "line": 42, - "column": 5 - }, - "end": { - "line": 45, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 44, - "column": 9 - }, - "end": { - "line": 44, - "column": 62 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_44_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004818016, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201694217, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run_job", - "return_type": "-> Result<(), Failed>", - "span": { - "start": { - "line": 169, - "column": 5 - }, - "end": { - "line": 175, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 174, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_170_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.05520038, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.816009552, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::fetch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 282, - "column": 5 - }, - "end": { - "line": 290, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 286, - "column": 9 - }, - "end": { - "line": 289, - "column": 19 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_286_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.205137859, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.996625131, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, None))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_008.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.354176286, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.808213355, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(\"xyzzy\".into(), \"xyzzy\".into())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_009.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.904155338, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.655877251, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 33 - }, - "end": { - "line": 23, - "column": 35 - } - }, - "replacement": "&&", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_23_col_33.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104289007, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.162561997, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 38 - }, - "end": { - "line": 110, - "column": 39 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_110_col_38.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.854708946, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.71398485, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/utils.rs", - "function": { - "function_name": "gen_random_jid", - "return_type": "-> String", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 16, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 15, - "column": 33 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__utils.rs_line_15_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.854035576, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.914604124, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::register_runner", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 80, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 89, - "column": 9 - }, - "end": { - "line": 90, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_89_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.304414081, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 5.417318596, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::report_success_to_server", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 181, - "column": 5 - }, - "end": { - "line": 183, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 182, - "column": 9 - }, - "end": { - "line": 182, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_182_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104716572, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.968708569, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new(Default::default())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_008.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302431561, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 172, - "column": 29 - }, - "end": { - "line": 172, - "column": 30 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_172_col_29_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054849394, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.717633922, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_batch_status", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 21, - "column": 5 - }, - "end": { - "line": 25, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 24, - "column": 50 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_23_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054520444, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.418770968, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 244, - "column": 5 - }, - "end": { - "line": 246, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 245, - "column": 9 - }, - "end": { - "line": 245, - "column": 31 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_245_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252060752, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::kind", - "return_type": "-> &str", - "span": { - "start": { - "line": 248, - "column": 5 - }, - "end": { - "line": 251, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 250, - "column": 9 - }, - "end": { - "line": 250, - "column": 19 - } - }, - "replacement": "\"\"", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_250_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803926635, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.66734566, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 52 - }, - "end": { - "line": 109, - "column": 53 - } - }, - "replacement": "*", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_109_col_52.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.904816795, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.71164224, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::new(BufStream::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_009.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302378998, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::connect_with", - "return_type": "-> Result, E>, Error>", - "span": { - "start": { - "line": 93, - "column": 5 - }, - "end": { - "line": 104, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 99, - "column": 9 - }, - "end": { - "line": 103, - "column": 74 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_99_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201852635, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "parse_provided_or_from_env", - "return_type": "-> Result", - "span": { - "start": { - "line": 30, - "column": 1 - }, - "end": { - "line": 32, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 31, - "column": 45 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_31_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201256265, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": "::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 75, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 76, - "column": 9 - }, - "end": { - "line": 76, - "column": 24 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__runner.rs_line_76_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.802972355, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.559002198, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "host_from_url", - "return_type": "-> String", - "span": { - "start": { - "line": 10, - "column": 1 - }, - "end": { - "line": 12, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 5 - }, - "end": { - "line": 11, - "column": 74 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_11_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.90487673, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.216740823, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 28, - "column": 23 - }, - "end": { - "line": 28, - "column": 25 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_28_col_23.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004590953, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 11.588446416, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 269, - "column": 5 - }, - "end": { - "line": 274, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 270, - "column": 9 - }, - "end": { - "line": 273, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_270_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054833728, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.754321026, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_163_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.003682717, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.502086913, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_cuurently_running", - "return_type": "-> Option", - "span": { - "start": { - "line": 18, - "column": 5 - }, - "end": { - "line": 20, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 9 - }, - "end": { - "line": 19, - "column": 32 - } - }, - "replacement": "None", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_19_col_9.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.05481601, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.047878368, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "write_command_and_await_ok", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 271, - "column": 1 - }, - "end": { - "line": 280, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 278, - "column": 5 - }, - "end": { - "line": 279, - "column": 26 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_278_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154778099, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.809053271, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::from(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_163_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104747176, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.402369949, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::expires_in", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 47, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 46, - "column": 9 - }, - "end": { - "line": 46, - "column": 42 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_46_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.050873575, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.25200294, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::new()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_163_col_9_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.10210621, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.503476317, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((1, Some(HashMap::new())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_010.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.105161175, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.055750162, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "::fmt", - "return_type": "-> std::fmt::Result", - "span": { - "start": { - "line": 101, - "column": 5 - }, - "end": { - "line": 112, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 102, - "column": 9 - }, - "end": { - "line": 111, - "column": 27 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_102_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054794016, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.916781633, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 118, - "column": 34 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_15_col_5.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.10179712, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.614244456, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 110, - "column": 38 - }, - "end": { - "line": 110, - "column": 39 - } - }, - "replacement": "%", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_110_col_38_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101758674, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.311719008, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 190, - "column": 63 - }, - "end": { - "line": 190, - "column": 64 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_190_col_63.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.15498803, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.71857283, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 405, - "column": 5 - }, - "end": { - "line": 410, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 409, - "column": 9 - }, - "end": { - "line": 409, - "column": 52 - } - }, - "replacement": "Ok(Some(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_409_col_9_001.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.202280009, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::with_connector", - "return_type": "-> Result", - "span": { - "start": { - "line": 59, - "column": 5 - }, - "end": { - "line": 70, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 63, - "column": 9 - }, - "end": { - "line": 69, - "column": 68 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_63_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054019226, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.252975757, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 17 - }, - "end": { - "line": 29, - "column": 19 - } - }, - "replacement": "||", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_29_col_17.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004426652, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.018174648, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_shutdown", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 166, - "column": 5 - }, - "end": { - "line": 171, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 170, - "column": 9 - }, - "end": { - "line": 170, - "column": 48 - } - }, - "replacement": "Poll::from_iter([Ok(())])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_170_col_9_003.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004190368, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.402930222, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_010.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252370434, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_flush", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 159, - "column": 5 - }, - "end": { - "line": 164, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 163, - "column": 9 - }, - "end": { - "line": 163, - "column": 45 - } - }, - "replacement": "Poll::new(Ok(()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_163_col_9_003.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.804062805, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.402668902, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from_iter([Ok(0)])", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_004.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.102130504, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.403545508, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_009.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201534675, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::get_progress", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 19, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 17, - "column": 9 - }, - "end": { - "line": 18, - "column": 50 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_17_col_9_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803576734, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.954219181, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/builder.rs", - "function": { - "function_name": "WorkerBuilder::hostname", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 39, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 9 - }, - "end": { - "line": 38, - "column": 13 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__builder.rs_line_37_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004572008, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.806697517, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Fail::generic_with_backtrace", - "return_type": "-> Self", - "span": { - "start": { - "line": 119, - "column": 5 - }, - "end": { - "line": 132, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 123, - "column": 9 - }, - "end": { - "line": 131, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_123_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252226781, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::from_iter([Ok(())]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_302_col_9_002.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252056194, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 236, - "column": 5 - }, - "end": { - "line": 238, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 237, - "column": 9 - }, - "end": { - "line": 237, - "column": 16 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_237_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201804109, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.904333376, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.251538554, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_010.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201258383, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/health.rs", - "function": { - "function_name": "Worker::listen_for_heartbeats", - "return_type": "-> Result", - "span": { - "start": { - "line": 16, - "column": 5 - }, - "end": { - "line": 77, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 63 - }, - "end": { - "line": 31, - "column": 65 - } - }, - "replacement": "!=", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__health.rs_line_31_col_63.log", - "summary": "Timeout", - "phase_results": [ - { - "phase": "Build", - "duration": 1.05436902, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 91.036824176, - "process_status": "Timeout", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_003.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054732671, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.59816569, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read_json", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 34, - "column": 1 - }, - "end": { - "line": 63, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 37, - "column": 5 - }, - "end": { - "line": 62, - "column": 33 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_37_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.2542398590000001, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 5.069189417, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 322, - "column": 5 - }, - "end": { - "line": 327, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 326, - "column": 9 - }, - "end": { - "line": 326, - "column": 60 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_326_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154798819, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.16524176, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 109, - "column": 52 - }, - "end": { - "line": 109, - "column": 53 - } - }, - "replacement": "-", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_109_col_52_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.904464227, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.706779091, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101404397, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.252066474, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": ">::issue", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 297, - "column": 5 - }, - "end": { - "line": 305, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 298, - "column": 9 - }, - "end": { - "line": 304, - "column": 40 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_298_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.853134443, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.805740819, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::from_iter([Default::default()])]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_011.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252421562, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/id.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 85, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 84, - "column": 9 - }, - "end": { - "line": 84, - "column": 23 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__id.rs_line_84_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903716108, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.508246056, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::new(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903812538, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201667014, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": ">::drop", - "return_type": "", - "span": { - "start": { - "line": 173, - "column": 5 - }, - "end": { - "line": 181, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 174, - "column": 9 - }, - "end": { - "line": 180, - "column": 12 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_174_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104104122, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.911229074, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::new(Ok(1))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_005.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154020475, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.452947228, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 359, - "column": 24 - }, - "end": { - "line": 359, - "column": 25 - } - }, - "replacement": "/", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_359_col_24_001.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.854213485, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.111432141, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from_iter([BufStream::new()]))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_011.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.302573808, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_003.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803666775, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.251721075, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect_with", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 191, - "column": 5 - }, - "end": { - "line": 202, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 196, - "column": 9 - }, - "end": { - "line": 201, - "column": 42 - } - }, - "replacement": "Ok(Client::from(BufStream::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_196_col_9_012.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252492794, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerStatesRegistry::register_failure", - "return_type": "", - "span": { - "start": { - "line": 58, - "column": 5 - }, - "end": { - "line": 63, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 59, - "column": 9 - }, - "end": { - "line": 62, - "column": 47 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_59_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903310762, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.563667846, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(Some(DateTime::new()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_003.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.904413832, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.201743825, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::save_last_result", - "return_type": "", - "span": { - "start": { - "line": 22, - "column": 5 - }, - "end": { - "line": 24, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 23, - "column": 9 - }, - "end": { - "line": 23, - "column": 41 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_23_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.854259614, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.563544334, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::set_progress", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 9, - "column": 5 - }, - "end": { - "line": 13, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 11, - "column": 9 - }, - "end": { - "line": 12, - "column": 48 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_11_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104477983, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.151486696, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::reconnect", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 115, - "column": 5 - }, - "end": { - "line": 124, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 116, - "column": 9 - }, - "end": { - "line": 123, - "column": 72 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_116_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.152580605, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.352811033, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "WorkerState::take_cuurently_running", - "return_type": "-> Option", - "span": { - "start": { - "line": 18, - "column": 5 - }, - "end": { - "line": 20, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 19, - "column": 9 - }, - "end": { - "line": 19, - "column": 32 - } - }, - "replacement": "Some(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_19_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.005137221, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.054429285, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": ">::poll_write", - "return_type": "-> std::task::Poll>", - "span": { - "start": { - "line": 151, - "column": 5 - }, - "end": { - "line": 157, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 156, - "column": 9 - }, - "end": { - "line": 156, - "column": 50 - } - }, - "replacement": "Poll::from(Ok(0))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_156_col_9_006.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.003931506, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.453071462, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "url_parse", - "return_type": "-> Result", - "span": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 28, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 15, - "column": 5 - }, - "end": { - "line": 27, - "column": 12 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_15_col_5.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201445192, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/tls.rs", - "function": { - "function_name": "TlsStream::default", - "return_type": "-> io::Result", - "span": { - "start": { - "line": 77, - "column": 5 - }, - "end": { - "line": 88, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 83, - "column": 9 - }, - "end": { - "line": 87, - "column": 53 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__tls.rs_line_83_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.903185088, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.252760463, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "ReadToken<'a, S>::read_bid", - "return_type": "-> Result", - "span": { - "start": { - "line": 48, - "column": 5 - }, - "end": { - "line": 50, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 49, - "column": 9 - }, - "end": { - "line": 49, - "column": 51 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_49_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.050714089, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.307026164, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::from(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_002.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101637959, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.252228, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "BatchStatus::open", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 83, - "column": 5 - }, - "end": { - "line": 91, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 90, - "column": 9 - }, - "end": { - "line": 90, - "column": 48 - } - }, - "replacement": "Ok(Some(BatchHandle::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_90_col_9_004.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.050630435, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.251784348, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/resp.rs", - "function": { - "function_name": "read", - "return_type": "-> Result", - "span": { - "start": { - "line": 134, - "column": 1 - }, - "end": { - "line": 233, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 190, - "column": 63 - }, - "end": { - "line": 190, - "column": 64 - } - }, - "replacement": "+", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__resp.rs_line_190_col_63_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.103334114, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.619045811, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::open_batch", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 33, - "column": 5 - }, - "end": { - "line": 40, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 38, - "column": 9 - }, - "end": { - "line": 39, - "column": 55 - } - }, - "replacement": "Ok(Some(BatchHandle::from_iter([Default::default()])))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_38_col_9_004.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.055042539, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.302408631, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "Job::builder", - "return_type": "-> JobBuilder", - "span": { - "start": { - "line": 227, - "column": 5 - }, - "end": { - "line": 232, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 231, - "column": 9 - }, - "end": { - "line": 231, - "column": 30 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_231_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201859262, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/handle.rs", - "function": { - "function_name": "BatchHandle<'a, S>::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 35, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 33, - "column": 9 - }, - "end": { - "line": 34, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__handle.rs_line_33_col_9_003.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.803474021, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.302347891, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::enqueue_many", - "return_type": "-> Result<(usize, Option>), Error>", - "span": { - "start": { - "line": 329, - "column": 5 - }, - "end": { - "line": 360, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 348, - "column": 9 - }, - "end": { - "line": 359, - "column": 54 - } - }, - "replacement": "Ok((0, Some(HashMap::from_iter([(String::new(), String::new())]))))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_348_col_9_011.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054912643, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.96526529, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/runner.rs", - "function": { - "function_name": ">::run", - "return_type": "-> Result<(), E>", - "span": { - "start": { - "line": 62, - "column": 5 - }, - "end": { - "line": 64, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 63, - "column": 9 - }, - "end": { - "line": 63, - "column": 24 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__runner.rs_line_63_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.054859289, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.21927132, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "Hello::set_password", - "return_type": "", - "span": { - "start": { - "line": 214, - "column": 5 - }, - "end": { - "line": 224, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 215, - "column": 9 - }, - "end": { - "line": 223, - "column": 58 - } - }, - "replacement": "()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_215_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.957396355, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.964721774000001, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/mod.rs", - "function": { - "function_name": "BatchBuilder::with_success_callback", - "return_type": "-> Batch", - "span": { - "start": { - "line": 183, - "column": 5 - }, - "end": { - "line": 188, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 185, - "column": 9 - }, - "end": { - "line": 187, - "column": 10 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__mod.rs_line_185_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.756642039, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.401799964, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/cmd.rs", - "function": { - "function_name": "::from", - "return_type": "-> Self", - "span": { - "start": { - "line": 262, - "column": 5 - }, - "end": { - "line": 264, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 263, - "column": 9 - }, - "end": { - "line": 263, - "column": 23 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__cmd.rs_line_263_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.150967343, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::queue_pause", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 373, - "column": 5 - }, - "end": { - "line": 382, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 378, - "column": 9 - }, - "end": { - "line": 381, - "column": 19 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_378_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154027925, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.570179531, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::run", - "return_type": "-> Result", - "span": { - "start": { - "line": 316, - "column": 5 - }, - "end": { - "line": 374, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 328, - "column": 9 - }, - "end": { - "line": 373, - "column": 10 - } - }, - "replacement": "Ok(1)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_328_col_9_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.00441235, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.766124876, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/mod.rs", - "function": { - "function_name": "Worker::spawn_worker", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 293, - "column": 5 - }, - "end": { - "line": 314, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 302, - "column": 9 - }, - "end": { - "line": 313, - "column": 12 - } - }, - "replacement": "Ok(JoinHandle::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__mod.rs_line_302_col_9_003.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.251886993, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client>::connect", - "return_type": "-> Result>, Error>", - "span": { - "start": { - "line": 206, - "column": 5 - }, - "end": { - "line": 221, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 218, - "column": 9 - }, - "end": { - "line": 220, - "column": 80 - } - }, - "replacement": "Ok(Client::from(BufStream::from(Default::default())))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_218_col_9_012.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.252192216, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/bin/loadtest.rs", - "function": { - "function_name": "main", - "return_type": "", - "span": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 119, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 87, - "column": 70 - }, - "end": { - "line": 87, - "column": 72 - } - }, - "replacement": "<", - "genre": "BinaryOperator" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__bin__loadtest.rs_line_87_col_70.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.354236077, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.750287036, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/worker/state.rs", - "function": { - "function_name": "::deref", - "return_type": "-> &Self::Target", - "span": { - "start": { - "line": 31, - "column": 5 - }, - "end": { - "line": 33, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 32, - "column": 9 - }, - "end": { - "line": 32, - "column": 16 - } - }, - "replacement": "&Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__worker__state.rs_line_32_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.30274533, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/batch/status.rs", - "function": { - "function_name": "::fmt", - "return_type": "-> std::fmt::Result", - "span": { - "start": { - "line": 30, - "column": 5 - }, - "end": { - "line": 38, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 31, - "column": 9 - }, - "end": { - "line": 37, - "column": 27 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__batch__status.rs_line_31_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.853879299, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.098241266, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/utils.rs", - "function": { - "function_name": "get_env_url", - "return_type": "-> String", - "span": { - "start": { - "line": 4, - "column": 1 - }, - "end": { - "line": 8, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 5, - "column": 5 - }, - "end": { - "line": 7, - "column": 73 - } - }, - "replacement": "\"xyzzy\".into()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__utils.rs_line_5_col_5_001.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.004010843, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 4.767113854, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/progress.rs", - "function": { - "function_name": "ProgressUpdate::builder", - "return_type": "-> ProgressUpdateBuilder", - "span": { - "start": { - "line": 47, - "column": 5 - }, - "end": { - "line": 53, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 52, - "column": 9 - }, - "end": { - "line": 52, - "column": 40 - } - }, - "replacement": "Default::default()", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__progress.rs_line_52_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.853233866, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.20223524, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::heartbeat", - "return_type": "-> Result", - "span": { - "start": { - "line": 292, - "column": 5 - }, - "end": { - "line": 315, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 293, - "column": 9 - }, - "end": { - "line": 314, - "column": 10 - } - }, - "replacement": "Ok(Default::default())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_293_col_9.log", - "summary": "Unviable", - "phase_results": [ - { - "phase": "Build", - "duration": 0.201332468, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/mod.rs", - "function": { - "function_name": "JobBuilder::unique_for", - "return_type": "-> &mut Self", - "span": { - "start": { - "line": 49, - "column": 5 - }, - "end": { - "line": 61, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 60, - "column": 9 - }, - "end": { - "line": 60, - "column": 52 - } - }, - "replacement": "Box::leak(Box::new(Default::default()))", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__mod.rs_line_60_col_9.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.854713886, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.202745504, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/mod.rs", - "function": { - "function_name": "write_command", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 263, - "column": 1 - }, - "end": { - "line": 269, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 267, - "column": 5 - }, - "end": { - "line": 268, - "column": 25 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__mod.rs_line_267_col_5.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.104674399, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.013996748, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/mod.rs", - "function": { - "function_name": "Client::reconnect", - "return_type": "-> Result<(), Error>", - "span": { - "start": { - "line": 163, - "column": 5 - }, - "end": { - "line": 166, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 164, - "column": 9 - }, - "end": { - "line": 165, - "column": 26 - } - }, - "replacement": "Ok(())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__mod.rs_line_164_col_9.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.405324832, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 15.700132509, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/single/ent/utils.rs", - "function": { - "function_name": "parse_datetime", - "return_type": "-> Result>, D::Error>", - "span": { - "start": { - "line": 9, - "column": 1 - }, - "end": { - "line": 17, - "column": 2 - } - } - }, - "span": { - "start": { - "line": 13, - "column": 5 - }, - "end": { - "line": 16, - "column": 6 - } - }, - "replacement": "Ok(None)", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__single__ent__utils.rs_line_13_col_5_004.log", - "summary": "MissedMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 1.154855087, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 14.908108446, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - }, - { - "scenario": { - "Mutant": { - "package": "faktory", - "file": "src/proto/client/ent.rs", - "function": { - "function_name": "Client::start_batch", - "return_type": "-> Result, Error>", - "span": { - "start": { - "line": 27, - "column": 5 - }, - "end": { - "line": 31, - "column": 6 - } - } - }, - "span": { - "start": { - "line": 29, - "column": 9 - }, - "end": { - "line": 30, - "column": 40 - } - }, - "replacement": "Ok(BatchHandle::new())", - "genre": "FnValue" - } - }, - "log_path": "/home/pavel/Public/faktory-rs/mutants.out/log/src__proto__client__ent.rs_line_29_col_9_003.log", - "summary": "CaughtMutant", - "phase_results": [ - { - "phase": "Build", - "duration": 0.101715747, - "process_status": "Success", - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "build", - "--tests", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml" - ] - }, - { - "phase": "Test", - "duration": 0.251874084, - "process_status": { - "Failure": 101 - }, - "argv": [ - "/home/pavel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo", - "test", - "--manifest-path", - "/tmp/cargo-mutants-faktory-rs-3ziugm.tmp/Cargo.toml", - "--locked", - "--all-features", - "--all-targets" - ] - } - ] - } - ], - "total_mutants": 277, - "missed": 70, - "caught": 131, - "timeout": 10, - "unviable": 66, - "success": 0, - "failure": 0 -} \ No newline at end of file diff --git a/mutants.out/timeout.txt b/mutants.out/timeout.txt deleted file mode 100644 index 32fe0015..00000000 --- a/mutants.out/timeout.txt +++ /dev/null @@ -1,10 +0,0 @@ -src/worker/state.rs:48:9: replace WorkerStatesRegistry::register_running with () -src/worker/mod.rs:358:24: replace != with == in Worker::run -src/worker/health.rs:20:9: replace Worker::listen_for_heartbeats -> Result with Ok(false) -src/worker/health.rs:20:9: replace Worker::listen_for_heartbeats -> Result with Ok(true) -src/worker/state.rs:15:9: replace WorkerState::take_last_result -> Option> with Some(Ok(Default::default())) -src/worker/mod.rs:228:9: replace Worker::force_fail_all_workers -> usize with 0 -src/worker/mod.rs:232:25: replace += with *= in Worker::force_fail_all_workers -src/worker/state.rs:19:9: replace WorkerState::take_cuurently_running -> Option with None -src/worker/health.rs:29:17: replace && with || in Worker::listen_for_heartbeats -src/worker/health.rs:31:63: replace == with != in Worker::listen_for_heartbeats diff --git a/mutants.out/unviable.txt b/mutants.out/unviable.txt deleted file mode 100644 index 2058bc1e..00000000 --- a/mutants.out/unviable.txt +++ /dev/null @@ -1,66 +0,0 @@ -src/worker/builder.rs:113:9: replace WorkerBuilder::connect -> Result, E>, Error> with Ok(Default::default()) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new())) -src/proto/single/cmd.rs:109:9: replace Fail::generic -> Self with Default::default() -src/proto/single/resp.rs:8:5: replace bad -> error::Protocol with Default::default() -src/proto/single/mod.rs:245:9: replace Job::id -> &JobId with &Default::default() -src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::new()) -src/proto/single/mod.rs:239:9: replace Job::on_queue -> Self with Default::default() -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) -src/proto/single/mod.rs:260:9: replace Job::failure -> &Option with &Some(Default::default()) -src/proto/mod.rs:50:9: replace >::reconnect -> io::Result with Ok(Default::default()) -src/proto/single/mod.rs:171:9: replace JobBuilder::args -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) -src/proto/single/resp.rs:239:9: replace ::from -> Self with Default::default() -src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::new(Default::default())) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new()) -src/proto/single/mod.rs:194:9: replace JobBuilder::build -> Job with Default::default() -src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from(Ok(()))) -src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::from_iter([Default::default()])) -src/proto/single/resp.rs:138:5: replace read -> Result with Ok(Default::default()) -src/proto/client/mod.rs:159:9: replace Client::connect_again -> Result with Ok(Default::default()) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) -src/worker/mod.rs:285:9: replace Worker::for_worker -> Result with Ok(Default::default()) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new(Default::default()))) -src/proto/single/resp.rs:251:9: replace ::from -> Self with Default::default() -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from(Default::default())])) -src/proto/client/mod.rs:278:9: replace Client::issue -> Result, Error> with Ok(ReadToken::from(Default::default())) -src/proto/single/resp.rs:98:5: replace read_hi -> Result with Ok(Default::default()) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::new())) -src/proto/single/resp.rs:37:5: replace read_json -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::new(Default::default()))) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from(Default::default()))) -src/proto/mod.rs:39:9: replace ::reconnect -> io::Result with Ok(Default::default()) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from_iter([Default::default()]))) -src/proto/client/mod.rs:286:9: replace Client::fetch -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::new())) -src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new(Ok(()))) -src/proto/single/cmd.rs:243:9: replace ::from -> Self with Default::default() -src/proto/single/mod.rs:181:9: replace JobBuilder::add_to_custom_data -> &mut Self with Box::leak(Box::new(Default::default())) -src/proto/single/cmd.rs:174:9: replace >::from -> Self with Default::default() -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new(Default::default())])) -src/proto/single/resp.rs:245:9: replace ::from -> Self with Default::default() -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::new(BufStream::from_iter([Default::default()]))) -src/worker/builder.rs:99:9: replace WorkerBuilder::connect_with -> Result, E>, Error> with Ok(Default::default()) -src/proto/utils.rs:31:5: replace parse_provided_or_from_env -> Result with Ok(Default::default()) -src/proto/client/mod.rs:409:9: replace ReadToken<'a, S>::read_json -> Result, Error> with Ok(Some(Default::default())) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::new())) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::new()) -src/proto/single/cmd.rs:123:9: replace Fail::generic_with_backtrace -> Self with Default::default() -src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::from_iter([Ok(())])) -src/proto/single/cmd.rs:237:9: replace ::deref -> &Self::Target with &Default::default() -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from_iter([BufStream::from_iter([Default::default()])])) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from_iter([BufStream::new()])) -src/proto/client/mod.rs:196:9: replace Client>::connect_with -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) -src/proto/utils.rs:15:5: replace url_parse -> Result with Ok(Default::default()) -src/proto/single/mod.rs:231:9: replace Job::builder -> JobBuilder with Default::default() -src/proto/single/cmd.rs:263:9: replace ::from -> Self with Default::default() -src/worker/mod.rs:302:9: replace Worker::spawn_worker -> Result>, Error> with Ok(JoinHandle::new()) -src/proto/client/mod.rs:218:9: replace Client>::connect -> Result>, Error> with Ok(Client::from(BufStream::from(Default::default()))) -src/worker/state.rs:32:9: replace ::deref -> &Self::Target with &Default::default() -src/proto/client/mod.rs:293:9: replace Client::heartbeat -> Result with Ok(Default::default()) From 6f195fb50d10e3e8333f4f2dd421b2efdf0142ea Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 14 Apr 2024 21:22:54 +0500 Subject: [PATCH 078/175] Use oneshot channel --- examples/run.rs | 2 +- src/worker/channel.rs | 7 +++---- src/worker/mod.rs | 13 +++++++++---- tests/real/community.rs | 4 ++-- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/examples/run.rs b/examples/run.rs index 06180283..ed1459bd 100644 --- a/examples/run.rs +++ b/examples/run.rs @@ -27,7 +27,7 @@ async fn main() { let handle = tokio::spawn(async move { w.run(&["default"], Some(rx)).await }); - tx.send(Message::Exit(100)).await.expect("sent ok"); + tx.send(Message::Exit(100)).expect("sent ok"); let nrunning = handle.await.expect("joined ok").expect("no worker errors"); diff --git a/src/worker/channel.rs b/src/worker/channel.rs index e7d2a0b1..373317aa 100644 --- a/src/worker/channel.rs +++ b/src/worker/channel.rs @@ -1,7 +1,7 @@ #[cfg(doc)] use super::{Worker, WorkerBuilder}; -use tokio::sync::mpsc::{self, Receiver, Sender}; +use tokio::sync::oneshot::{self, Receiver, Sender}; /// Message sent to running worker. /// @@ -31,8 +31,7 @@ pub enum Message { ReturnControlNow, } -/// Returns multiple producers and a singler consumer of a [`Message`]. +/// Returns multiple producers and a singler consumer one-shot channel for a [`Message`]. pub fn channel() -> (Sender, Receiver) { - let buf_size = std::mem::size_of::(); - mpsc::channel::(buf_size) + oneshot::channel::() } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index f8af2135..088e93f4 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -6,7 +6,7 @@ use std::process; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; -use tokio::sync::mpsc; +use tokio::sync::oneshot::Receiver; use tokio::task::JoinHandle; use tokio::time::sleep as tokio_sleep; use tokio::time::Duration as TokioDuration; @@ -356,7 +356,7 @@ impl< /// /// let (tx, rx) = channel(); /// let _handle = tokio::spawn(async move { w.run(&["qname"], Some(rx)).await }); - /// tx.send(Message::Exit(0)).await.expect("sent ok"); + /// tx.send(Message::Exit(0)).expect("sent ok"); /// # }); /// ``` /// @@ -379,7 +379,7 @@ impl< pub async fn run( &mut self, queues: &[Q], - channel: Option>, + channel: Option>, ) -> Result where Q: AsRef, @@ -422,7 +422,12 @@ impl< } }, // Message from userland received: - Some(msg) = async { let mut ch = channel.unwrap(); ch.recv().await }, if channel.is_some() => { + from_channel = async { let ch = channel.unwrap(); ch.await }, if channel.is_some() => { + if from_channel.is_err() { + tracing::info!("The sender dropped"); + process::exit(0); + } + let msg = from_channel.unwrap(); if let Message::ExitNow(code) = msg { tracing::info!("Received signal to immediately exit with status {}.", code); process::exit(code); diff --git a/tests/real/community.rs b/tests/real/community.rs index 3345fd5a..dac9888e 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -373,7 +373,7 @@ async fn test_shutdown_signals_handling() { cl.enqueue(j).await.unwrap(); rx_for_test_purposes.recv().await; // ... immediately signal to return control - tx.send(Message::ReturnControl).await.expect("sent ok"); + tx.send(Message::ReturnControl).expect("sent ok"); // one worker was processing a task when we interrupted it let nrunning = jh.await.expect("joined ok").unwrap(); @@ -394,7 +394,7 @@ async fn test_shutdown_signals_handling() { .unwrap(); rx_for_test_purposes.recv().await; // signalling to yield immediately - tx.send(Message::ReturnControlNow).await.expect("sent ok"); + tx.send(Message::ReturnControlNow).expect("sent ok"); let nrunning = jh.await.expect("joined ok").unwrap(); // we did not even have a change to examine the current workers state assert_eq!(nrunning, 0); From 6b9f3c01b53ef0f2e71907fe7d62fece581c955c Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 15 Apr 2024 13:43:46 +0500 Subject: [PATCH 079/175] Add message on cancellation safety --- src/worker/health.rs | 5 +++++ src/worker/mod.rs | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/worker/health.rs b/src/worker/health.rs index 4d505a80..63c34064 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -16,6 +16,11 @@ impl< E: StdError + 'static + Send, > Worker { + /// Exchange heart beats with the Faktory service. + /// + /// Note that this method is not cancellation safe. We are using an interval timer internally, that + /// would be reset should we call this method anew. Besides, the `Heartbeat` command is being issued + /// with the help of `AsyncWriteExt::write_all` which is not cancellation safe. pub(crate) async fn listen_for_heartbeats( &mut self, statuses: &Vec>, diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 088e93f4..669d0c60 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -403,7 +403,7 @@ impl< } let report = tokio::select! { - // SIGTERM received: + // Signal SIGTERM received. _ = tokio::signal::ctrl_c(), if self.forever => { tracing::info!("SIGINT received, shutting down gracefully."); tokio::select! { @@ -421,7 +421,7 @@ impl< } } }, - // Message from userland received: + // Message from userland code received. from_channel = async { let ch = channel.unwrap(); ch.await }, if channel.is_some() => { if from_channel.is_err() { tracing::info!("The sender dropped"); @@ -459,7 +459,10 @@ impl< _ => unreachable!("ExitNow and ReturnControlNow variants are already handled above.") } }, - // Instruction from Faktory received or error occurred: + // Instruction from Faktory received or error occurred. + // Though this is not cancellation safe, we _are_ ok, since we are effectively running a one-time race in this select + // (without any looping) and, besides, we are mutating `statuses` atomically inside this method, so even if one the other + // select arms were to utilize the `statuses` state, it would be just fine to do so. exit = self.listen_for_heartbeats(&statuses) => { // there are a couple of cases here: // - we got TERMINATE, so we should just return, even if a worker is still running From 5a174980c68d4a1625d6d0f44312ac26c8dae9b5 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 21 Apr 2024 23:58:30 +0500 Subject: [PATCH 080/175] Support both openssl and rustls --- .github/workflows/tls.yml | 2 +- Cargo.lock | 82 ++++++++++++++ Cargo.toml | 7 +- Makefile | 2 +- src/lib.rs | 3 +- src/tls/mod.rs | 12 +++ src/{tls.rs => tls/openssl.rs} | 5 +- src/tls/rustls.rs | 182 ++++++++++++++++++++++++++++++++ tests/tls/main.rs | 5 + tests/{tls.rs => tls/native.rs} | 5 +- tests/tls/rust.rs | 178 +++++++++++++++++++++++++++++++ 11 files changed, 472 insertions(+), 11 deletions(-) create mode 100644 src/tls/mod.rs rename src/{tls.rs => tls/openssl.rs} (98%) create mode 100644 src/tls/rustls.rs create mode 100644 tests/tls/main.rs rename tests/{tls.rs => tls/native.rs} (97%) create mode 100644 tests/tls/rust.rs diff --git a/.github/workflows/tls.yml b/.github/workflows/tls.yml index 058bf965..11d8106b 100644 --- a/.github/workflows/tls.yml +++ b/.github/workflows/tls.yml @@ -29,4 +29,4 @@ jobs: - name: Run tests env: FAKTORY_URL_SECURE: tcp://localhost:17419 - run: cargo test --locked --features tls --test tls + run: cargo test --locked --features openssl,rustls --test tls diff --git a/Cargo.lock b/Cargo.lock index 34dcb7a4..a8e7ba3f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -450,6 +450,7 @@ dependencies = [ "thiserror", "tokio", "tokio-native-tls", + "tokio-rustls", "tokio-test", "url", "x509-parser", @@ -896,6 +897,21 @@ dependencies = [ "getrandom", ] +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -924,6 +940,37 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" + +[[package]] +name = "rustls-webpki" +version = "0.102.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "ryu" version = "1.0.17" @@ -1014,6 +1061,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "strsim" version = "0.10.0" @@ -1026,6 +1079,12 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + [[package]] name = "syn" version = "1.0.109" @@ -1176,6 +1235,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.15" @@ -1233,6 +1303,12 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.5.0" @@ -1501,3 +1577,9 @@ dependencies = [ "thiserror", "time", ] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/Cargo.toml b/Cargo.toml index 938f6729..5d7f90fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,9 @@ exclude = [".github", "docker", ".gitignore", "Makefile"] [features] default = [] -tls = ["dep:tokio-native-tls", "dep:pin-project"] +tls = ["dep:pin-project"] +openssl = ["tls", "dep:tokio-native-tls"] +rustls = ["tls", "dep:tokio-rustls"] binaries = ["dep:clap", "tokio/macros"] ent = [] @@ -44,6 +46,7 @@ tokio = { version = "1.35.1", features = [ "time", ] } tokio-native-tls = { version = "0.3.1", optional = true } +tokio-rustls = { version = "0.25.0", optional = true } url = "2" [dev-dependencies] @@ -53,7 +56,7 @@ x509-parser = "0.15.1" # to make -Zminimal-versions work [target.'cfg(any())'.dependencies] -openssl = { version = "0.10.60", optional = true } +openssl-crate = { package = "openssl", version = "0.10.60", optional = true } native-tls = { version = "0.2.4", optional = true } num-bigint = "0.4.2" oid-registry = "0.6.1" diff --git a/Makefile b/Makefile index 35cac22a..f8c8ccdd 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ test/e2e: .PHONY: test/e2e/tls test/e2e/tls: FAKTORY_URL_SECURE=tcp://${FAKTORY_HOST}:${FAKTORY_PORT_SECURE} \ - cargo test --locked --features tls --test tls + cargo test --locked --features openssl,rustls --test tls .PHONY: test/load test/load: diff --git a/src/lib.rs b/src/lib.rs index 8f4617e0..d9b3d0e6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -91,5 +91,4 @@ pub mod ent { mod tls; #[cfg(feature = "tls")] -#[cfg_attr(docsrs, doc(cfg(feature = "tls")))] -pub use tls::TlsStream; +pub use tls::*; diff --git a/src/tls/mod.rs b/src/tls/mod.rs new file mode 100644 index 00000000..84c60f05 --- /dev/null +++ b/src/tls/mod.rs @@ -0,0 +1,12 @@ +#[cfg(feature = "openssl")] +#[cfg_attr(docsrs, doc(cfg(feature = "openssl")))] +/// Namespace for OpenSSL-powered [`TlsStream`](crate::openssl::TlsStream). +/// +/// The underlying crate (`native-tls`) will use _SChannel_ on Windows, +/// _SecureTransport_ on OSX, and _OpenSSL_ on other platforms. +pub mod openssl; + +#[cfg(feature = "rustls")] +#[cfg_attr(docsrs, doc(cfg(feature = "rustls")))] +/// Namespace for Rustls-powered [`TlsStream`](crate::rustls::TlsStream). +pub mod rustls; diff --git a/src/tls.rs b/src/tls/openssl.rs similarity index 98% rename from src/tls.rs rename to src/tls/openssl.rs index 2a80c690..105d8e29 100644 --- a/src/tls.rs +++ b/src/tls/openssl.rs @@ -19,7 +19,8 @@ use tokio_native_tls::{native_tls::TlsConnector, TlsConnector as AsyncTlsConnect /// /// ```no_run /// # tokio_test::block_on(async { -/// use faktory::{Client, TlsStream}; +/// use faktory::Client; +/// use faktory::openssl::TlsStream; /// let tls = TlsStream::connect(None).await.unwrap(); /// let cl = Client::connect_with(tls, None).await.unwrap(); /// # drop(cl); @@ -31,7 +32,7 @@ pub struct TlsStream { connector: AsyncTlsConnector, hostname: String, #[pin] - stream: NativeTlsStream, + pub(crate) stream: NativeTlsStream, } impl TlsStream { diff --git a/src/tls/rustls.rs b/src/tls/rustls.rs new file mode 100644 index 00000000..c137ff53 --- /dev/null +++ b/src/tls/rustls.rs @@ -0,0 +1,182 @@ +#[cfg(doc)] +use crate::{Client, WorkerBuilder}; + +use crate::{proto::utils, Error, Reconnect}; +use std::fmt::Debug; +use std::io; +use std::ops::{Deref, DerefMut}; +use std::sync::Arc; +use tokio::io::{AsyncRead, AsyncWrite}; +use tokio::net::TcpStream as TokioTcpStream; +use tokio_rustls::client::TlsStream as RustlsStream; +use tokio_rustls::rustls::{ClientConfig, RootCertStore}; +use tokio_rustls::TlsConnector; + +/// A reconnectable stream encrypted with TLS. +/// +/// This can be used as an argument to [`WorkerBuilder::connect_with`] and [`Client::connect_with`] to +/// connect to a TLS-secured Faktory server. +/// +/// # Examples +/// +/// ```no_run +/// # tokio_test::block_on(async { +/// use faktory::Client; +/// use faktory::rustls::TlsStream; +/// let tls = TlsStream::connect(None).await.unwrap(); +/// let cl = Client::connect_with(tls, None).await.unwrap(); +/// # drop(cl); +/// # }); +/// ``` +/// +#[pin_project::pin_project] +pub struct TlsStream { + connector: TlsConnector, + hostname: &'static str, + #[pin] + pub(crate) stream: RustlsStream, +} + +impl TlsStream { + /// Create a new TLS connection over TCP. + /// + /// If `url` is not given, will use the standard Faktory environment variables. Specifically, + /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address + /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the + /// server address. If the latter environment variable is not defined, the connection will be + /// made to + /// + /// ```text + /// tcp://localhost:7419 + /// ``` + /// + /// If `url` is given, but does not specify a port, it defaults to 7419. + /// + /// Internally creates a `ClientConfig` with an empty root certificates store and no client + /// authentication. Use [`with_client_config`](TlsStream::with_client_config) + /// or [`with_connector`](TlsStream::with_connector) for customized + /// `ClientConfig` and `TlsConnector` accordingly. + pub async fn connect(url: Option<&str>) -> Result { + let conf = ClientConfig::builder() + .with_root_certificates(RootCertStore::empty()) + .with_no_client_auth(); + let con = TlsConnector::from(Arc::new(conf)); + TlsStream::with_connector(con, url).await + } + + /// Create a new asynchronous TLS connection over TCP using a non-default TLS configuration. + /// + /// See `connect` for details about the `url` parameter. + pub async fn with_client_config(conf: ClientConfig, url: Option<&str>) -> Result { + let con = TlsConnector::from(Arc::new(conf)); + TlsStream::with_connector(con, url).await + } + + /// Create a new asynchronous TLS connection over TCP using a connector with a non-default TLS configuration. + /// + /// See `connect` for details about the `url` parameter. + pub async fn with_connector(connector: TlsConnector, url: Option<&str>) -> Result { + let url = match url { + Some(url) => utils::url_parse(url), + None => utils::url_parse(&utils::get_env_url()), + }?; + let hostname = utils::host_from_url(&url); + let tcp_stream = TokioTcpStream::connect(&hostname).await?; + let hostname: &'static str = url.host_str().unwrap().to_string().leak(); + Ok(TlsStream::new(tcp_stream, connector, hostname).await?) + } +} + +impl TlsStream +where + S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static, +{ + /// Create a new asynchronous TLS connection on an existing stream. + /// + /// Internally creates a `ClientConfig` with an empty root certificates store and no client + /// authentication. Use [`new`](TlsStream::new) for a customized `TlsConnector`. + pub async fn default(stream: S, hostname: &'static str) -> io::Result { + let conf = ClientConfig::builder() + .with_root_certificates(RootCertStore::empty()) + .with_no_client_auth(); + + Self::new(stream, TlsConnector::from(Arc::new(conf)), hostname).await + } + + /// Create a new asynchronous TLS connection on an existing stream with a non-default TLS configuration. + pub async fn new( + stream: S, + connector: TlsConnector, + hostname: &'static str, + ) -> io::Result { + // let hostname: &'static str = hostname.to_string().leak(); + let domain = hostname.try_into().expect("a valid DNS name or IP address"); + let tls_stream = connector + .connect(domain, stream) + .await + .map_err(|e| io::Error::new(io::ErrorKind::ConnectionAborted, e))?; + Ok(TlsStream { + connector, + hostname, + stream: tls_stream, + }) + } +} + +#[async_trait::async_trait] +impl Reconnect for TlsStream +where + S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static + Sync, +{ + async fn reconnect(&mut self) -> io::Result { + let stream = self.stream.get_mut().0.reconnect().await?; + Self::new(stream, self.connector.clone(), &self.hostname).await + } +} + +impl Deref for TlsStream { + type Target = RustlsStream; + fn deref(&self) -> &Self::Target { + &self.stream + } +} + +impl DerefMut for TlsStream { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.stream + } +} + +impl AsyncRead for TlsStream { + fn poll_read( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + buf: &mut tokio::io::ReadBuf<'_>, + ) -> std::task::Poll> { + self.project().stream.poll_read(cx, buf) + } +} + +impl AsyncWrite for TlsStream { + fn poll_write( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + buf: &[u8], + ) -> std::task::Poll> { + self.project().stream.poll_write(cx, buf) + } + + fn poll_flush( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> std::task::Poll> { + self.project().stream.poll_flush(cx) + } + + fn poll_shutdown( + self: std::pin::Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> std::task::Poll> { + self.project().stream.poll_shutdown(cx) + } +} diff --git a/tests/tls/main.rs b/tests/tls/main.rs new file mode 100644 index 00000000..32c1cc74 --- /dev/null +++ b/tests/tls/main.rs @@ -0,0 +1,5 @@ +#[cfg(feature = "openssl")] +mod native; + +#[cfg(feature = "rustls")] +mod rust; diff --git a/tests/tls.rs b/tests/tls/native.rs similarity index 97% rename from tests/tls.rs rename to tests/tls/native.rs index d98294f4..7d4378ea 100644 --- a/tests/tls.rs +++ b/tests/tls/native.rs @@ -1,6 +1,5 @@ -#![cfg(feature = "tls")] - -use faktory::{Client, Job, TlsStream, WorkerBuilder}; +use faktory::openssl::TlsStream; +use faktory::{Client, Job, WorkerBuilder}; use serde_json::Value; use std::{env, sync}; diff --git a/tests/tls/rust.rs b/tests/tls/rust.rs new file mode 100644 index 00000000..7fbc825b --- /dev/null +++ b/tests/tls/rust.rs @@ -0,0 +1,178 @@ +use faktory::rustls::TlsStream; +use faktory::{Client, Job, WorkerBuilder}; +use serde_json::Value; +use std::{ + env, + sync::{self, Arc}, +}; +use tokio_rustls::rustls::{ClientConfig, SignatureScheme}; + +#[tokio::test(flavor = "multi_thread")] +async fn roundtrip_tls() { + // We are utilizing the fact that the "FAKTORY_URL_SECURE" environment variable is set + // as an indicator that the integration test can and should be performed. + // + // In case the variable is not set we are returning early. This will show `test ... ok` + // in the test run output, which is admittedly confusing. Ideally, we would like to be able to decorate + // a test with a macro and to see something like `test ... skipped due to `, in case + // the test has been skipped, but it is currently not "natively" supported. + // + // See: https://github.com/rust-lang/rust/issues/68007 + if env::var_os("FAKTORY_URL_SECURE").is_none() { + return; + } + + let local = "roundtrip_tls"; + + let (tx, rx) = sync::mpsc::channel(); + let mut c = WorkerBuilder::default(); + + c.hostname("tester".to_string()).wid(local.into()); + c.register_runner(local, fixtures::JobHandler::new(tx)); + + let tls = || async { + let verifier = fixtures::TestServerCertVerifier::new( + SignatureScheme::RSA_PSS_SHA512, + env::current_dir() + .unwrap() + .join("docker") + .join("certs") + .join("faktory.local.crt"), + ); + let client_config = ClientConfig::builder() + .dangerous() + .with_custom_certificate_verifier(Arc::new(verifier)) + .with_no_client_auth(); + + TlsStream::with_client_config( + client_config, + Some(&env::var("FAKTORY_URL_SECURE").unwrap()), + ) + .await + .unwrap() + }; + + let mut c = c.connect_with(tls().await, None).await.unwrap(); + let mut p = Client::connect_with(tls().await, None).await.unwrap(); + p.enqueue(Job::new(local, vec!["z"]).on_queue(local)) + .await + .unwrap(); + c.run_one(0, &[local]).await.unwrap(); + + let job = rx.recv().unwrap(); + assert_eq!(job.queue, local); + assert_eq!(job.kind(), local); + assert_eq!(job.args(), &[Value::from("z")]); +} + +mod fixtures { + pub use handler::JobHandler; + pub use tls::TestServerCertVerifier; + + mod handler { + use async_trait::async_trait; + use faktory::{Job, JobRunner}; + use std::{ + io, + sync::{mpsc::Sender, Arc, Mutex}, + time::Duration, + }; + use tokio::time; + + pub struct JobHandler { + chan: Arc>>, + } + + impl JobHandler { + pub fn new(chan: Sender) -> Self { + Self { + chan: Arc::new(Mutex::new(chan)), + } + } + + async fn process_one(&self, job: Job) -> io::Result<()> { + time::sleep(Duration::from_millis(100)).await; + eprintln!("{:?}", job); + self.chan.lock().unwrap().send(job).unwrap(); + Ok(()) + } + } + + #[async_trait] + impl JobRunner for JobHandler { + type Error = io::Error; + + async fn run(&self, job: Job) -> Result<(), Self::Error> { + self.process_one(job).await.unwrap(); + Ok(()) + } + } + } + + mod tls { + #![allow(unused_variables)] + + use std::fs; + use std::path::PathBuf; + + use tokio_rustls::rustls::client::danger::{ + HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier, + }; + use tokio_rustls::rustls::pki_types::{CertificateDer, ServerName, UnixTime}; + use tokio_rustls::rustls::DigitallySignedStruct; + use tokio_rustls::rustls::Error as RustlsError; + use tokio_rustls::rustls::SignatureScheme; + use x509_parser::pem::parse_x509_pem; + + #[derive(Debug)] + pub struct TestServerCertVerifier<'a> { + scheme: SignatureScheme, + cert_der: CertificateDer<'a>, + } + + impl TestServerCertVerifier<'_> { + pub fn new(scheme: SignatureScheme, cert_path: PathBuf) -> Self { + let cert = fs::read(&cert_path).unwrap(); + let (_, pem) = parse_x509_pem(&cert).unwrap(); + let cert_der = CertificateDer::try_from(pem.contents).unwrap(); + Self { scheme, cert_der } + } + } + + impl ServerCertVerifier for TestServerCertVerifier<'_> { + fn verify_server_cert( + &self, + end_entity: &CertificateDer<'_>, + intermediates: &[CertificateDer<'_>], + server_name: &ServerName<'_>, + ocsp_response: &[u8], + now: UnixTime, + ) -> Result { + assert_eq!(&self.cert_der, end_entity); + Ok(ServerCertVerified::assertion()) + } + + fn verify_tls12_signature( + &self, + message: &[u8], + cert: &CertificateDer<'_>, + dss: &DigitallySignedStruct, + ) -> Result { + Ok(HandshakeSignatureValid::assertion()) + } + + fn verify_tls13_signature( + &self, + message: &[u8], + cert: &CertificateDer<'_>, + dss: &DigitallySignedStruct, + ) -> Result { + Ok(HandshakeSignatureValid::assertion()) + } + + fn supported_verify_schemes(&self) -> Vec { + vec![self.scheme] + } + } + } +} From 13eaace0caf25af391e69858758372cc4179b0a7 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 00:26:34 +0500 Subject: [PATCH 081/175] Support both openssl and rustls. Clean up --- .github/workflows/tls.yml | 2 +- Cargo.toml | 7 +++---- Makefile | 2 +- src/error.rs | 5 +++-- src/lib.rs | 4 ++-- src/tls/mod.rs | 8 ++++---- src/tls/{openssl.rs => native_tls.rs} | 2 +- tests/tls/main.rs | 6 +++--- tests/tls/{native.rs => native_tls.rs} | 2 +- tests/tls/{rust.rs => rustls.rs} | 0 10 files changed, 19 insertions(+), 19 deletions(-) rename src/tls/{openssl.rs => native_tls.rs} (99%) rename tests/tls/{native.rs => native_tls.rs} (98%) rename tests/tls/{rust.rs => rustls.rs} (100%) diff --git a/.github/workflows/tls.yml b/.github/workflows/tls.yml index 11d8106b..9c86816b 100644 --- a/.github/workflows/tls.yml +++ b/.github/workflows/tls.yml @@ -29,4 +29,4 @@ jobs: - name: Run tests env: FAKTORY_URL_SECURE: tcp://localhost:17419 - run: cargo test --locked --features openssl,rustls --test tls + run: cargo test --locked --features native_tls,rustls --test tls diff --git a/Cargo.toml b/Cargo.toml index 5d7f90fe..9b654a74 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,9 +15,8 @@ exclude = [".github", "docker", ".gitignore", "Makefile"] [features] default = [] -tls = ["dep:pin-project"] -openssl = ["tls", "dep:tokio-native-tls"] -rustls = ["tls", "dep:tokio-rustls"] +native_tls = ["dep:pin-project", "dep:tokio-native-tls"] +rustls = ["dep:pin-project", "dep:tokio-rustls"] binaries = ["dep:clap", "tokio/macros"] ent = [] @@ -56,7 +55,7 @@ x509-parser = "0.15.1" # to make -Zminimal-versions work [target.'cfg(any())'.dependencies] -openssl-crate = { package = "openssl", version = "0.10.60", optional = true } +openssl = { version = "0.10.60", optional = true } native-tls = { version = "0.2.4", optional = true } num-bigint = "0.4.2" oid-registry = "0.6.1" diff --git a/Makefile b/Makefile index f8c8ccdd..c6b89f8e 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ test/e2e: .PHONY: test/e2e/tls test/e2e/tls: FAKTORY_URL_SECURE=tcp://${FAKTORY_HOST}:${FAKTORY_PORT_SECURE} \ - cargo test --locked --features openssl,rustls --test tls + cargo test --locked --features native_tls,rustls --test tls .PHONY: test/load test/load: diff --git a/src/error.rs b/src/error.rs index bc5e0a7e..40385c78 100644 --- a/src/error.rs +++ b/src/error.rs @@ -43,8 +43,9 @@ pub enum Error { Serialization(#[source] serde_json::Error), /// Indicates an error in the underlying TLS stream. - #[cfg(feature = "tls")] - #[cfg_attr(docsrs, doc(cfg(feature = "tls")))] + + #[cfg(any(feature = "native_tls", feature = "rustls"))] + #[cfg_attr(docsrs, doc(cfg(any(feature = "native_tls", feature = "rustls"))))] #[error("underlying tls stream")] TlsStream(#[source] tokio_native_tls::native_tls::Error), } diff --git a/src/lib.rs b/src/lib.rs index d9b3d0e6..b73211f5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -87,8 +87,8 @@ pub mod ent { }; } -#[cfg(feature = "tls")] +#[cfg(any(feature = "native_tls", feature = "rustls"))] mod tls; -#[cfg(feature = "tls")] +#[cfg(any(feature = "native_tls", feature = "rustls"))] pub use tls::*; diff --git a/src/tls/mod.rs b/src/tls/mod.rs index 84c60f05..95cf94c7 100644 --- a/src/tls/mod.rs +++ b/src/tls/mod.rs @@ -1,10 +1,10 @@ -#[cfg(feature = "openssl")] -#[cfg_attr(docsrs, doc(cfg(feature = "openssl")))] -/// Namespace for OpenSSL-powered [`TlsStream`](crate::openssl::TlsStream). +#[cfg(feature = "native_tls")] +#[cfg_attr(docsrs, doc(cfg(feature = "native_tls")))] +/// Namespace for native TLS powered [`TlsStream`](crate::native_tls::TlsStream). /// /// The underlying crate (`native-tls`) will use _SChannel_ on Windows, /// _SecureTransport_ on OSX, and _OpenSSL_ on other platforms. -pub mod openssl; +pub mod native_tls; #[cfg(feature = "rustls")] #[cfg_attr(docsrs, doc(cfg(feature = "rustls")))] diff --git a/src/tls/openssl.rs b/src/tls/native_tls.rs similarity index 99% rename from src/tls/openssl.rs rename to src/tls/native_tls.rs index 105d8e29..a66dc49b 100644 --- a/src/tls/openssl.rs +++ b/src/tls/native_tls.rs @@ -20,7 +20,7 @@ use tokio_native_tls::{native_tls::TlsConnector, TlsConnector as AsyncTlsConnect /// ```no_run /// # tokio_test::block_on(async { /// use faktory::Client; -/// use faktory::openssl::TlsStream; +/// use faktory::native_tls::TlsStream; /// let tls = TlsStream::connect(None).await.unwrap(); /// let cl = Client::connect_with(tls, None).await.unwrap(); /// # drop(cl); diff --git a/tests/tls/main.rs b/tests/tls/main.rs index 32c1cc74..5369ef6a 100644 --- a/tests/tls/main.rs +++ b/tests/tls/main.rs @@ -1,5 +1,5 @@ -#[cfg(feature = "openssl")] -mod native; +#[cfg(feature = "native_tls")] +mod native_tls; #[cfg(feature = "rustls")] -mod rust; +mod rustls; diff --git a/tests/tls/native.rs b/tests/tls/native_tls.rs similarity index 98% rename from tests/tls/native.rs rename to tests/tls/native_tls.rs index 7d4378ea..05957642 100644 --- a/tests/tls/native.rs +++ b/tests/tls/native_tls.rs @@ -1,4 +1,4 @@ -use faktory::openssl::TlsStream; +use faktory::native_tls::TlsStream; use faktory::{Client, Job, WorkerBuilder}; use serde_json::Value; use std::{env, sync}; diff --git a/tests/tls/rust.rs b/tests/tls/rustls.rs similarity index 100% rename from tests/tls/rust.rs rename to tests/tls/rustls.rs From 8d54b0c8c3860e77eb963b3f1e8b369688b5c406 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 00:28:01 +0500 Subject: [PATCH 082/175] Support both openssl and rustls. Min versions fix --- Cargo.lock | 1 + Cargo.toml | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8e7ba3f..b2ae48b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -443,6 +443,7 @@ dependencies = [ "openssl", "pin-project", "rand", + "rustls", "serde", "serde_derive", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 9b654a74..ea164c0e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,11 +55,12 @@ x509-parser = "0.15.1" # to make -Zminimal-versions work [target.'cfg(any())'.dependencies] -openssl = { version = "0.10.60", optional = true } +chrono = "0.4.32" native-tls = { version = "0.2.4", optional = true } num-bigint = "0.4.2" oid-registry = "0.6.1" -chrono = "0.4.32" +openssl = { version = "0.10.60", optional = true } +rustls = "0.22.1" [[bin]] name = "loadtest" From f1e5966b7fd319b457e39f764ff712a2cd3d0ad8 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 01:26:31 +0500 Subject: [PATCH 083/175] Support both openssl and rustls. Add TlsStream error --- src/error.rs | 22 +++++++++++++++++++--- src/tls/native_tls.rs | 12 ++++++++---- src/tls/rustls.rs | 14 ++++++-------- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/src/error.rs b/src/error.rs index 40385c78..13043243 100644 --- a/src/error.rs +++ b/src/error.rs @@ -43,11 +43,10 @@ pub enum Error { Serialization(#[source] serde_json::Error), /// Indicates an error in the underlying TLS stream. - #[cfg(any(feature = "native_tls", feature = "rustls"))] #[cfg_attr(docsrs, doc(cfg(any(feature = "native_tls", feature = "rustls"))))] - #[error("underlying tls stream")] - TlsStream(#[source] tokio_native_tls::native_tls::Error), + #[error("tls stream")] + TlsStream(#[from] TlsStream), } /// Errors specific to connection logic. @@ -161,3 +160,20 @@ impl Protocol { } } } + +/// Implementation specific errors in the underlying TLS stream. +#[derive(Debug, Error)] +#[non_exhaustive] +pub enum TlsStream { + /// Error in the underlying native tls powered stream. + #[cfg(feature = "native_tls")] + #[cfg_attr(docsrs, doc(cfg(feature = "native_tls")))] + #[error("underlying tls stream")] + Native(#[source] tokio_native_tls::native_tls::Error), + + /// Error in the underlying rutsls powered stream. + #[cfg(feature = "rustls")] + #[cfg_attr(docsrs, doc(cfg(feature = "rustls")))] + #[error("underlying tls stream")] + Rustls(#[source] tokio_rustls::rustls::Error), +} diff --git a/src/tls/native_tls.rs b/src/tls/native_tls.rs index a66dc49b..95273a88 100644 --- a/src/tls/native_tls.rs +++ b/src/tls/native_tls.rs @@ -1,7 +1,9 @@ #[cfg(doc)] use crate::{Client, WorkerBuilder}; -use crate::{proto::utils, Error, Reconnect}; +use crate::error::{self, Error}; +use crate::proto::utils; +use crate::Reconnect; use std::fmt::Debug; use std::io; use std::ops::{Deref, DerefMut}; @@ -32,7 +34,7 @@ pub struct TlsStream { connector: AsyncTlsConnector, hostname: String, #[pin] - pub(crate) stream: NativeTlsStream, + stream: NativeTlsStream, } impl TlsStream { @@ -51,7 +53,9 @@ impl TlsStream { /// If `url` is given, but does not specify a port, it defaults to 7419. pub async fn connect(url: Option<&str>) -> Result { TlsStream::with_connector( - TlsConnector::builder().build().map_err(Error::TlsStream)?, + TlsConnector::builder() + .build() + .map_err(error::TlsStream::Native)?, url, ) .await @@ -83,7 +87,7 @@ where pub async fn default(stream: S, hostname: &str) -> io::Result { let connector = TlsConnector::builder() .build() - .map_err(Error::TlsStream) + .map_err(error::TlsStream::Native) .unwrap(); Self::new(stream, connector, hostname).await } diff --git a/src/tls/rustls.rs b/src/tls/rustls.rs index c137ff53..adbc2b0f 100644 --- a/src/tls/rustls.rs +++ b/src/tls/rustls.rs @@ -34,7 +34,7 @@ pub struct TlsStream { connector: TlsConnector, hostname: &'static str, #[pin] - pub(crate) stream: RustlsStream, + stream: RustlsStream, } impl TlsStream { @@ -64,7 +64,7 @@ impl TlsStream { TlsStream::with_connector(con, url).await } - /// Create a new asynchronous TLS connection over TCP using a non-default TLS configuration. + /// Create a new TLS connection over TCP using a non-default TLS configuration. /// /// See `connect` for details about the `url` parameter. pub async fn with_client_config(conf: ClientConfig, url: Option<&str>) -> Result { @@ -72,7 +72,7 @@ impl TlsStream { TlsStream::with_connector(con, url).await } - /// Create a new asynchronous TLS connection over TCP using a connector with a non-default TLS configuration. + /// Create a new TLS connection over TCP using a connector with a non-default TLS configuration. /// /// See `connect` for details about the `url` parameter. pub async fn with_connector(connector: TlsConnector, url: Option<&str>) -> Result { @@ -82,8 +82,7 @@ impl TlsStream { }?; let hostname = utils::host_from_url(&url); let tcp_stream = TokioTcpStream::connect(&hostname).await?; - let hostname: &'static str = url.host_str().unwrap().to_string().leak(); - Ok(TlsStream::new(tcp_stream, connector, hostname).await?) + Ok(TlsStream::new(tcp_stream, connector, hostname.leak()).await?) } } @@ -91,7 +90,7 @@ impl TlsStream where S: AsyncRead + AsyncWrite + Send + Unpin + Reconnect + Debug + 'static, { - /// Create a new asynchronous TLS connection on an existing stream. + /// Create a new TLS connection on an existing stream. /// /// Internally creates a `ClientConfig` with an empty root certificates store and no client /// authentication. Use [`new`](TlsStream::new) for a customized `TlsConnector`. @@ -103,13 +102,12 @@ where Self::new(stream, TlsConnector::from(Arc::new(conf)), hostname).await } - /// Create a new asynchronous TLS connection on an existing stream with a non-default TLS configuration. + /// Create a new TLS connection on an existing stream with a non-default TLS configuration. pub async fn new( stream: S, connector: TlsConnector, hostname: &'static str, ) -> io::Result { - // let hostname: &'static str = hostname.to_string().leak(); let domain = hostname.try_into().expect("a valid DNS name or IP address"); let tls_stream = connector .connect(domain, stream) From 58cb247ee9974557dc08d133295c1b0b7572ffe9 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 16:18:22 +0500 Subject: [PATCH 084/175] Support both openssl and rustls. Rustls clean up --- Makefile | 2 +- src/tls/rustls.rs | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index c6b89f8e..a1dc59e5 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ test/e2e: .PHONY: test/e2e/tls test/e2e/tls: FAKTORY_URL_SECURE=tcp://${FAKTORY_HOST}:${FAKTORY_PORT_SECURE} \ - cargo test --locked --features native_tls,rustls --test tls + cargo test --locked --features native_tls,rustls --test tls -- --nocapture .PHONY: test/load test/load: diff --git a/src/tls/rustls.rs b/src/tls/rustls.rs index adbc2b0f..ba42520b 100644 --- a/src/tls/rustls.rs +++ b/src/tls/rustls.rs @@ -80,9 +80,10 @@ impl TlsStream { Some(url) => utils::url_parse(url), None => utils::url_parse(&utils::get_env_url()), }?; - let hostname = utils::host_from_url(&url); - let tcp_stream = TokioTcpStream::connect(&hostname).await?; - Ok(TlsStream::new(tcp_stream, connector, hostname.leak()).await?) + let host_and_port = utils::host_from_url(&url); + let tcp_stream = TokioTcpStream::connect(&host_and_port).await?; + let host = url.host_str().unwrap(); + Ok(TlsStream::new(tcp_stream, connector, host).await?) } } @@ -106,11 +107,23 @@ where pub async fn new( stream: S, connector: TlsConnector, - hostname: &'static str, + hostname: impl Into, ) -> io::Result { - let domain = hostname.try_into().expect("a valid DNS name or IP address"); + let hostname: &'static str = hostname.into().leak(); + TlsStream::create_new(stream, connector, hostname).await + } + + /// Actually create new `TlsStream`. + /// + /// This private faktory method is needed to be able re-use the already `&'static str` hostname + /// when re-connecting, rather than allocate new String and leak it yet again. + /// + /// See how we are leaking the `hostname` in [`new`](TlsStream::new) constructor. This is needed + /// to satisfy the `tokio_rustls::TlsConnector::connect` which is expecting a `pki_types::ServerName<'static>`. + async fn create_new(stream: S, connector: TlsConnector, hostname: &'static str) -> io::Result{ + let server_name = hostname.try_into().expect("a valid DNS name or IP address"); let tls_stream = connector - .connect(domain, stream) + .connect(server_name, stream) .await .map_err(|e| io::Error::new(io::ErrorKind::ConnectionAborted, e))?; Ok(TlsStream { @@ -128,7 +141,7 @@ where { async fn reconnect(&mut self) -> io::Result { let stream = self.stream.get_mut().0.reconnect().await?; - Self::new(stream, self.connector.clone(), &self.hostname).await + TlsStream::create_new(stream, self.connector.clone(), self.hostname).await } } From 6628efb408067adb7e6c3fed9741b45e64629f88 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 16:25:28 +0500 Subject: [PATCH 085/175] Rm `async` from loadtest binary name --- src/bin/loadtest.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index 5dbc5054..14eefc86 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -12,7 +12,7 @@ const QUEUES: &[&str] = &["queue0", "queue1", "queue2", "queue3", "queue4"]; #[tokio::main] async fn main() { - let matches = Command::new("My Super Program (Async)") + let matches = Command::new("My Super Program") .version("0.1") .about("Benchmark the performance of Rust Faktory async workers and client") .arg( From 6af3dcc30499c5ba3dbbaddbcd0fdbc291527791 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 16:43:51 +0500 Subject: [PATCH 086/175] Rm leading underscore in `ops_count` var in loadtest --- src/bin/loadtest.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index 14eefc86..b3537e62 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -99,9 +99,9 @@ async fn main() { }); } - let mut _ops_count = Vec::with_capacity(threads); + let mut ops_count = Vec::with_capacity(threads); while let Some(res) = set.join_next().await { - _ops_count.push(res.unwrap()) + ops_count.push(res.unwrap()) } let stop = start.elapsed(); @@ -115,5 +115,5 @@ async fn main() { stop_secs, jobs as f64 / stop_secs, ); - println!("{:?}", _ops_count); + println!("Number of operations (pushes and pops) per thread: {:?}", ops_count); } From f8d3f3208dea625fa25e3a71ec2d047905b7e83b Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 18:22:39 +0500 Subject: [PATCH 087/175] Rm redundant 'asynchronously' from the docs in proto::client mod --- src/proto/client/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index 9a0b1efb..947aafef 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -319,7 +319,7 @@ impl Client where S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, { - /// Asynchronously enqueue the given job on the Faktory server. + /// Enqueue the given job on the Faktory server. /// /// Returns `Ok` if the job was successfully queued by the Faktory server. pub async fn enqueue(&mut self, job: Job) -> Result<(), Error> { From e9cd5813aee306f4009c5e34522289f33ac18dc5 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 18:37:36 +0500 Subject: [PATCH 088/175] Update private docs for ClientOptions --- src/proto/client/options.rs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/proto/client/options.rs b/src/proto/client/options.rs index 98fa58ae..f13c8a82 100644 --- a/src/proto/client/options.rs +++ b/src/proto/client/options.rs @@ -2,22 +2,32 @@ use crate::proto::WorkerId; #[derive(Clone, Debug)] pub(crate) struct ClientOptions { - // Hostname to advertise to server. Defaults to machine hostname. + /// Hostname to advertise to server. + /// + /// Defaults to machine hostname. pub(crate) hostname: Option, - // PID to advertise to server. Defaults to process ID. + /// PID to advertise to server. + /// + /// Defaults to process ID. pub(crate) pid: Option, - // Worker ID to advertise to server Defaults to a GUID. + /// Worker ID to advertise to server. + /// + /// Defaults to a GUID. pub(crate) wid: Option, - // Labels to advertise to server. Defaults to ["rust"]. + /// Labels to advertise to server. + /// + /// Defaults to ["rust"]. pub(crate) labels: Vec, - // Password to authenticate with. Defaults to None. + /// Password to authenticate with. + /// + /// Defaults to None. pub(crate) password: Option, - // Whether this client is instatianted for a worker (i.e. to consume jobs). + /// Whether this client is instatianted for a worker (i.e. to consume jobs). pub(crate) is_worker: bool, } From 2df103dd59551d2db758bad8c2ecaffe4cc1f86a Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 20:00:27 +0500 Subject: [PATCH 089/175] Craete BatchId, WorkerId, and JobId with `::new` --- src/proto/batch/mod.rs | 4 +++- src/proto/single/id.rs | 14 ++++++++------ src/proto/single/mod.rs | 2 +- src/proto/single/resp.rs | 9 +++++---- tests/consumer.rs | 10 +++++----- tests/real/community.rs | 23 +++++++++++++---------- tests/real/enterprise.rs | 2 +- tests/tls/native_tls.rs | 4 ++-- tests/tls/rustls.rs | 4 ++-- 9 files changed, 40 insertions(+), 32 deletions(-) diff --git a/src/proto/batch/mod.rs b/src/proto/batch/mod.rs index 52d7d617..8845fa9f 100644 --- a/src/proto/batch/mod.rs +++ b/src/proto/batch/mod.rs @@ -220,6 +220,8 @@ mod test { use chrono::{DateTime, Utc}; + use crate::JobId; + use super::*; #[test] @@ -255,7 +257,7 @@ mod test { #[test] fn test_batch_serialized_correctly() { let prepare_test_job = |jobtype: String| { - let jid = "LFluKy1Baak83p54"; + let jid = JobId::new("LFluKy1Baak83p54"); let dt = "2023-12-22T07:00:52.546258624Z"; let created_at = DateTime::::from_str(dt).unwrap(); Job::builder(jobtype) diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs index fada2bfe..00f10386 100644 --- a/src/proto/single/id.rs +++ b/src/proto/single/id.rs @@ -1,14 +1,16 @@ use super::utils; use std::ops::{Deref, DerefMut}; +use std::fmt::Display; macro_rules! string_wrapper_impls { ($new_type:ident) => { - impl From for $new_type - where - S: AsRef, - { - fn from(value: S) -> Self { - $new_type(value.as_ref().to_owned()) + impl $new_type { + /// Document me! + pub fn new(inner: S) -> Self + where + S: AsRef + Clone + Display, + { + Self(inner.to_string()) } } diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index c7f1a993..fce78470 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -289,7 +289,7 @@ mod test { let job_args = vec!["ISBN-13:9781718501850"]; let job = JobBuilder::new(job_kind).args(job_args.clone()).build(); - assert!(job.jid != "".into()); + assert!(job.jid != JobId::new("")); assert!(job.queue == JOB_DEFAULT_QUEUE.to_string()); assert_eq!(job.kind, job_kind); assert_eq!(job.args, job_args); diff --git a/src/proto/single/resp.rs b/src/proto/single/resp.rs index 18e5a9b1..bd0a07b9 100644 --- a/src/proto/single/resp.rs +++ b/src/proto/single/resp.rs @@ -72,12 +72,13 @@ pub async fn read_bid(r: R) -> Result Ok(std::str::from_utf8(b) - .map_err(|_| error::Protocol::BadType { + RawResponse::Blob(ref b) => { + let raw = std::str::from_utf8(b).map_err(|_| error::Protocol::BadType { expected: "valid blob representation of batch id", received: "unprocessable blob".into(), - })? - .into()), + })?; + Ok(BatchId::new(raw)) + } something_else => Err(bad("id", &something_else).into()), } } diff --git a/tests/consumer.rs b/tests/consumer.rs index 8aab27db..bf050ec4 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -9,7 +9,7 @@ async fn hello() { let mut s = mock::Stream::default(); let mut c: WorkerBuilder = WorkerBuilder::default(); c.hostname("host".to_string()) - .wid("wid".into()) + .wid(WorkerId::new("wid")) .labels(vec!["foo".to_string(), "bar".to_string()]); c.register("never_called", |_j: Job| async move { unreachable!() }); let c = c.connect_with(s.clone(), None).await.unwrap(); @@ -152,7 +152,7 @@ async fn dequeue_first_empty() { async fn well_behaved() { let mut s = mock::Stream::new(2); // main plus worker let mut c = WorkerBuilder::default(); - c.wid("wid".into()); + c.wid(WorkerId::new("wid")); c.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; @@ -217,7 +217,7 @@ async fn well_behaved() { async fn no_first_job() { let mut s = mock::Stream::new(2); let mut c = WorkerBuilder::default(); - c.wid("wid".into()); + c.wid(WorkerId::new("wid")); c.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; @@ -284,7 +284,7 @@ async fn well_behaved_many() { let mut s = mock::Stream::new(3); let mut c = WorkerBuilder::default(); c.workers(2); - c.wid("wid".into()); + c.wid(WorkerId::new("wid")); c.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; @@ -359,7 +359,7 @@ async fn well_behaved_many() { async fn terminate() { let mut s = mock::Stream::new(2); let mut c: WorkerBuilder = WorkerBuilder::default(); - c.wid("wid".into()); + c.wid(WorkerId::new("wid")); c.register("foobar", |_| async move { loop { sleep(Duration::from_secs(5)).await; diff --git a/tests/real/community.rs b/tests/real/community.rs index d8b36885..77aa225c 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,5 +1,5 @@ use crate::skip_check; -use faktory::{Client, Job, JobBuilder, WorkerBuilder}; +use faktory::{Client, Job, JobBuilder, JobId, WorkerBuilder, WorkerId}; use serde_json::Value; use std::{io, sync}; @@ -33,7 +33,7 @@ async fn roundtrip() { skip_check!(); let local = "roundtrip"; - let jid = String::from("x-job-id-0123456782"); + let jid = JobId::new("x-job-id-0123456782"); let mut c = WorkerBuilder::default(); c.register("order", move |job| async move { @@ -47,7 +47,7 @@ async fn roundtrip() { let mut p = Client::connect(None).await.unwrap(); p.enqueue( JobBuilder::new("order") - .jid(&jid) + .jid(jid) .args(vec!["ISBN-13:9781718501850"]) .queue(local) .build(), @@ -69,7 +69,7 @@ async fn multi() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local.into()); + c.hostname("tester".to_string()).wid(WorkerId::new(local)); c.register(local, move |j| { let tx = sync::Arc::clone(&tx); @@ -110,7 +110,7 @@ async fn fail() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local.into()); + c.hostname("tester".to_string()).wid(WorkerId::new(local)); c.register(local, move |j| { let tx = sync::Arc::clone(&tx); @@ -147,7 +147,7 @@ async fn queue() { let tx = sync::Arc::new(sync::Mutex::new(tx)); let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local.into()); + c.hostname("tester".to_string()).wid(WorkerId::new(local)); c.register(local, move |_job| { let tx = sync::Arc::clone(&tx); Box::pin(async move { tx.lock().unwrap().send(true) }) @@ -203,13 +203,16 @@ async fn test_jobs_pushed_in_bulk() { let (enqueued_count, errors) = p .enqueue_many([ - Job::builder("broken").jid("short").queue(local_3).build(), // jid.len() < 8 + Job::builder("broken") + .jid(JobId::new("short")) + .queue(local_3) + .build(), // jid.len() < 8 Job::builder("") // empty string jobtype - .jid("3sZCbdp8e9WX__0") + .jid(JobId::new("3sZCbdp8e9WX__0")) .queue(local_3) .build(), Job::builder("broken") - .jid("3sZCbdp8e9WX__1") + .jid(JobId::new("3sZCbdp8e9WX__1")) .queue(local_3) .reserve_for(864001) // reserve_for exceeded .build(), @@ -241,7 +244,7 @@ async fn test_jobs_pushed_in_bulk() { // have _really_ been enqueued, i.e. that `enqueue_many` // is not an all-or-nothing operation: let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local_3.into()); + c.hostname("tester".to_string()).wid(WorkerId::new(local_3)); c.register("very_special", move |_job| async { Ok::<(), io::Error>(()) }); diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index 74bb5ff0..cb81d69d 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -998,7 +998,7 @@ async fn test_batch_can_be_reopened_add_extra_jobs_and_batches_added() { // ############################## SUBTEST 0 ########################################## // Let's try to open/reopen a batch we have never declared: let b = p - .open_batch(BatchId::from("non-existent-batch-id")) + .open_batch(BatchId::new("non-existent-batch-id")) .await .unwrap(); // The server will error back on this, with "No such batch ", but diff --git a/tests/tls/native_tls.rs b/tests/tls/native_tls.rs index 05957642..19263fc5 100644 --- a/tests/tls/native_tls.rs +++ b/tests/tls/native_tls.rs @@ -1,5 +1,5 @@ use faktory::native_tls::TlsStream; -use faktory::{Client, Job, WorkerBuilder}; +use faktory::{Client, Job, WorkerBuilder, WorkerId}; use serde_json::Value; use std::{env, sync}; @@ -25,7 +25,7 @@ async fn roundtrip_tls() { let (tx, rx) = sync::mpsc::channel(); let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local.into()); + c.hostname("tester".to_string()).wid(WorkerId::new(local)); c.register_runner(local, fixtures::JobHandler::new(tx)); let tls = || async { diff --git a/tests/tls/rustls.rs b/tests/tls/rustls.rs index 7fbc825b..8885d353 100644 --- a/tests/tls/rustls.rs +++ b/tests/tls/rustls.rs @@ -1,5 +1,5 @@ use faktory::rustls::TlsStream; -use faktory::{Client, Job, WorkerBuilder}; +use faktory::{Client, Job, WorkerBuilder, WorkerId}; use serde_json::Value; use std::{ env, @@ -27,7 +27,7 @@ async fn roundtrip_tls() { let (tx, rx) = sync::mpsc::channel(); let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(local.into()); + c.hostname("tester".to_string()).wid(WorkerId::new(local)); c.register_runner(local, fixtures::JobHandler::new(tx)); let tls = || async { From a4919649b4697027c40cdf351b00184b90db75db Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 20:48:46 +0500 Subject: [PATCH 090/175] Add `AsRef` impl for BatchId, WorkerId, and JobId --- src/proto/single/id.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs index 00f10386..9bb7b57c 100644 --- a/src/proto/single/id.rs +++ b/src/proto/single/id.rs @@ -1,11 +1,11 @@ use super::utils; -use std::ops::{Deref, DerefMut}; use std::fmt::Display; +use std::ops::Deref; macro_rules! string_wrapper_impls { ($new_type:ident) => { impl $new_type { - /// Document me! + /// Create a new entity identifier. pub fn new(inner: S) -> Self where S: AsRef + Clone + Display, @@ -21,9 +21,9 @@ macro_rules! string_wrapper_impls { } } - impl DerefMut for $new_type { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 + impl AsRef for $new_type { + fn as_ref(&self) -> &str { + self.deref().as_ref() } } }; From bb60f6bc9044bcabcfe871067212d7606b7830f4 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 22 Apr 2024 20:51:53 +0500 Subject: [PATCH 091/175] Run formatter. Fix doc code --- src/bin/loadtest.rs | 5 ++++- src/proto/client/mod.rs | 6 +++--- src/proto/client/options.rs | 4 ++-- src/tls/rustls.rs | 10 +++++++--- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index b3537e62..bdeccc17 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -115,5 +115,8 @@ async fn main() { stop_secs, jobs as f64 / stop_secs, ); - println!("Number of operations (pushes and pops) per thread: {:?}", ops_count); + println!( + "Number of operations (pushes and pops) per thread: {:?}", + ops_count + ); } diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index 947aafef..f2d3ade6 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -104,7 +104,7 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// ```no_run /// # tokio_test::block_on(async { /// use faktory::{Client, JobId, ent::JobState}; -/// let job_id = JobId::from("W8qyVle9vXzUWQOf"); +/// let job_id = JobId::new("W8qyVle9vXzUWQOf"); /// let mut cl = Client::connect(None).await?; /// if let Some(progress) = cl.get_progress(job_id).await? { /// if let JobState::Success = progress.state { @@ -122,7 +122,7 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// ```no_run /// # tokio_test::block_on(async { /// use faktory::{Client, JobId, ent::ProgressUpdateBuilder}; -/// let jid = JobId::from("W8qyVle9vXzUWQOf"); +/// let jid = JobId::new("W8qyVle9vXzUWQOf"); /// let mut cl = Client::connect(None).await?; /// let progress = ProgressUpdateBuilder::new(jid) /// .desc("Almost done...".to_owned()) @@ -138,7 +138,7 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// ```no_run /// # tokio_test::block_on(async { /// use faktory::{Client, ent::BatchId}; -/// let bid = BatchId::from("W8qyVle9vXzUWQOg"); +/// let bid = BatchId::new("W8qyVle9vXzUWQOg"); /// let mut cl = Client::connect(None).await?; /// if let Some(status) = cl.get_batch_status(bid).await? { /// println!("This batch created at {}", status.created_at); diff --git a/src/proto/client/options.rs b/src/proto/client/options.rs index f13c8a82..aaa5e269 100644 --- a/src/proto/client/options.rs +++ b/src/proto/client/options.rs @@ -13,7 +13,7 @@ pub(crate) struct ClientOptions { pub(crate) pid: Option, /// Worker ID to advertise to server. - /// + /// /// Defaults to a GUID. pub(crate) wid: Option, @@ -23,7 +23,7 @@ pub(crate) struct ClientOptions { pub(crate) labels: Vec, /// Password to authenticate with. - /// + /// /// Defaults to None. pub(crate) password: Option, diff --git a/src/tls/rustls.rs b/src/tls/rustls.rs index ba42520b..24f7cba2 100644 --- a/src/tls/rustls.rs +++ b/src/tls/rustls.rs @@ -114,13 +114,17 @@ where } /// Actually create new `TlsStream`. - /// + /// /// This private faktory method is needed to be able re-use the already `&'static str` hostname /// when re-connecting, rather than allocate new String and leak it yet again. - /// + /// /// See how we are leaking the `hostname` in [`new`](TlsStream::new) constructor. This is needed /// to satisfy the `tokio_rustls::TlsConnector::connect` which is expecting a `pki_types::ServerName<'static>`. - async fn create_new(stream: S, connector: TlsConnector, hostname: &'static str) -> io::Result{ + async fn create_new( + stream: S, + connector: TlsConnector, + hostname: &'static str, + ) -> io::Result { let server_name = hostname.try_into().expect("a valid DNS name or IP address"); let tls_stream = connector .connect(server_name, stream) From 14bcf64c4d4455e6fbe6f86389a2dc9cedf53b19 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 12:15:52 +0500 Subject: [PATCH 092/175] Take 'Fail' in WorkerStatesRegistry::register_failure --- src/worker/mod.rs | 2 +- src/worker/state.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 899ff556..ed550445 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -265,7 +265,7 @@ impl Fail::generic(jid, format!("No handler for {}", jt)), Failed::Application(e) => Fail::generic_with_backtrace(jid, e), }; - self.worker_states.register_failure(worker, &fail); + self.worker_states.register_failure(worker, fail.clone()); self.report_failure_to_server(&fail).await?; } } diff --git a/src/worker/state.rs b/src/worker/state.rs index 0fb9fe0b..870076bc 100644 --- a/src/worker/state.rs +++ b/src/worker/state.rs @@ -55,11 +55,11 @@ impl WorkerStatesRegistry { .save_last_result(Ok(jid)); } - pub(crate) fn register_failure(&self, worker: usize, f: &Fail) { + pub(crate) fn register_failure(&self, worker: usize, f: Fail) { self[worker] .lock() .expect("lock acquired") - .save_last_result(Err(f.clone())); + .save_last_result(Err(f)); } pub(crate) fn reset(&self, worker: usize) { From 609950fc9f528021b0c27bd4ede8c7d91be45f19 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 15:00:35 +0500 Subject: [PATCH 093/175] Impl IntoIterator for WorkerStatesRegistry --- src/worker/mod.rs | 4 ++-- src/worker/state.rs | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index ed550445..83c0d3b6 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -188,7 +188,7 @@ impl usize { let mut running = 0; - for wstate in self.worker_states.iter() { + for wstate in &*self.worker_states { let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); if let Some(jid) = may_be_jid { running += 1; diff --git a/src/worker/state.rs b/src/worker/state.rs index 870076bc..78f17d20 100644 --- a/src/worker/state.rs +++ b/src/worker/state.rs @@ -39,6 +39,24 @@ impl DerefMut for WorkerStatesRegistry { } } +impl<'a> IntoIterator for &'a WorkerStatesRegistry { + type Item = &'a Mutex; + type IntoIter = <&'a Vec> as IntoIterator>::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + self.0.iter() + } +} + +impl<'a> IntoIterator for &'a mut WorkerStatesRegistry { + type Item = &'a mut Mutex; + type IntoIter = <&'a mut Vec> as IntoIterator>::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + self.0.iter_mut() + } +} + impl WorkerStatesRegistry { pub(crate) fn new(workers_count: usize) -> Self { Self((0..workers_count).map(|_| Default::default()).collect()) From db9b636abb07be0f348d810591f1b75821d599c7 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 15:26:38 +0500 Subject: [PATCH 094/175] Add docs for Closure newtype --- src/worker/runner.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 0bae806a..a3cecb44 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -77,6 +77,18 @@ where } } +/// A wrapper for the userland's handler. +/// +/// The `Closure` newtype is introduced to avoid having to box a job handler: +/// we can now use `Closure(handler)` instead of `Box::new(handler)` and make +/// the compiler happy. +/// +/// The `repr(transparent)` macro is to guarantee that this single-field struct +/// and the wrapped handler have the same layout and so it is safe to operate on +/// the in-memory representations of _the_ handler (submitted to us +/// from the userland) and its enclosed (by us) self. +/// +/// Ref: https://github.com/jonhoo/faktory-rs/pull/51 #[repr(transparent)] pub(crate) struct Closure(pub F); From 757f92e68d5d9ca9250a83ca57b7c63dc529bd8d Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 16:49:50 +0500 Subject: [PATCH 095/175] Restore JobRunner impl for &' mut F --- src/worker/runner.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/worker/runner.rs b/src/worker/runner.rs index a3cecb44..f3f12268 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -77,6 +77,18 @@ where } } +#[async_trait::async_trait] +impl<'a, E, F, Fut> JobRunner for &'a mut F +where + F: Send + Sync + Fn(Job) -> Fut, + Fut: Future> + Send, +{ + type Error = E; + async fn run(&self, job: Job) -> Result<(), E> { + (self as &F)(job).await + } +} + /// A wrapper for the userland's handler. /// /// The `Closure` newtype is introduced to avoid having to box a job handler: From 6469573adf1b03d91a538886f7d9fd9bdc54894c Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 18:46:00 +0500 Subject: [PATCH 096/175] Update worker in community::roundtrip test to chain `register` --- tests/real/community.rs | 47 +++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/tests/real/community.rs b/tests/real/community.rs index 77aa225c..f9bdb208 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -35,29 +35,34 @@ async fn roundtrip() { let local = "roundtrip"; let jid = JobId::new("x-job-id-0123456782"); - let mut c = WorkerBuilder::default(); - c.register("order", move |job| async move { - assert_eq!(job.kind(), "order"); - assert_eq!(job.queue, local); - assert_eq!(job.args(), &[Value::from("ISBN-13:9781718501850")]); - Ok::<(), io::Error>(()) - }); - c.register("image", |_| async move { unreachable!() }); - let mut c = c.connect(None).await.unwrap(); - let mut p = Client::connect(None).await.unwrap(); - p.enqueue( - JobBuilder::new("order") - .jid(jid) - .args(vec!["ISBN-13:9781718501850"]) - .queue(local) - .build(), - ) - .await - .unwrap(); - let had_one = c.run_one(0, &[local]).await.unwrap(); + let mut worker = WorkerBuilder::default(); + worker + .labels(vec!["rust".into(), local.into()]) + .workers(1) + .wid(WorkerId::random()) + .register("order", move |job| async move { + assert_eq!(job.kind(), "order"); + assert_eq!(job.queue, local); + assert_eq!(job.args(), &[Value::from("ISBN-13:9781718501850")]); + Ok::<(), io::Error>(()) + }) + .register("image", |_| async move { unreachable!() }); + let mut worker = worker.connect(None).await.unwrap(); + let mut client = Client::connect(None).await.unwrap(); + client + .enqueue( + JobBuilder::new("order") + .jid(jid) + .args(vec!["ISBN-13:9781718501850"]) + .queue(local) + .build(), + ) + .await + .unwrap(); + let had_one = worker.run_one(0, &[local]).await.unwrap(); assert!(had_one); - let drained = !c.run_one(0, &[local]).await.unwrap(); + let drained = !worker.run_one(0, &[local]).await.unwrap(); assert!(drained); } From 803400d6b6940b7bdbabd8859c9b8f1fe4359df8 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 18:48:17 +0500 Subject: [PATCH 097/175] Do not requiere *Ext in src::worker::mod --- src/worker/mod.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 83c0d3b6..be3a4cab 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -4,7 +4,7 @@ use crate::proto::{Ack, Fail, Job, JobId}; use fnv::FnvHashMap; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; -use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::task::JoinHandle; mod builder; @@ -136,20 +136,20 @@ type CallbacksRegistry = FnvHashMap>; /// You can also register anything that implements [`JobRunner`] to handle jobs /// with [`register_runner`](WorkerBuilder::register_runner). /// -pub struct Worker { +pub struct Worker { c: Client, worker_states: Arc, callbacks: Arc>, terminated: bool, } -impl Worker { +impl Worker { async fn reconnect(&mut self) -> Result<(), Error> { self.c.reconnect().await } } -impl Worker { +impl Worker { async fn new(c: Client, workers_count: usize, callbacks: CallbacksRegistry) -> Self { Worker { c, @@ -165,7 +165,7 @@ enum Failed { BadJobType(String), } -impl Worker { +impl Worker { async fn run_job(&mut self, job: Job) -> Result<(), Failed> { let handler = self .callbacks @@ -277,7 +277,7 @@ impl Worker { From 4b29f9c2a8700c4a88dd244a967d1106cbd10d36 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 18:53:15 +0500 Subject: [PATCH 098/175] Restore docs for WorkerBuilder::default --- src/worker/builder.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index eba846b5..95fe0038 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -17,9 +17,16 @@ pub struct WorkerBuilder { } impl Default for WorkerBuilder { - /// Create a builder for asynchronous version of `Worker`. + /// Construct a new [`WorkerBuilder`](struct.WorkerBuilder.html) with default worker options and the url fetched from environment + /// variables. + /// + /// This will construct a worker where: + /// + /// - `hostname` is this machine's hostname. + /// - `wid` is a randomly generated string. + /// - `pid` is the OS PID of this process. + /// - `labels` is `["rust"]`. /// - /// See [`WorkerBuilder`](struct.WorkerBuilder.html) fn default() -> Self { WorkerBuilder { opts: ClientOptions::default(), From d869858dda6bc491a751505944515c478a000c44 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 18:58:34 +0500 Subject: [PATCH 099/175] Rm redunrant helper methods on Worker --- src/worker/mod.rs | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index be3a4cab..8d5a7ad3 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -1,6 +1,6 @@ use super::proto::{Client, Reconnect}; use crate::error::Error; -use crate::proto::{Ack, Fail, Job, JobId}; +use crate::proto::{Ack, Fail, Job}; use fnv::FnvHashMap; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; @@ -174,14 +174,6 @@ impl handler.run(job).await.map_err(Failed::Application) } - async fn report_failure_to_server(&mut self, f: &Fail) -> Result<(), Error> { - self.c.issue(f).await?.read_ok().await - } - - async fn report_success_to_server(&mut self, jid: JobId) -> Result<(), Error> { - self.c.issue(&Ack::new(jid)).await?.read_ok().await - } - async fn report_on_all_workers(&mut self) -> Result<(), Error> { let worker_states = Arc::get_mut(&mut self.worker_states) .expect("all workers are scoped to &mut of the user-code-visible Worker"); @@ -258,7 +250,7 @@ impl match self.run_job(job).await { Ok(_) => { self.worker_states.register_success(worker, jid.clone()); - self.report_success_to_server(jid).await?; + self.c.issue(&Ack::new(jid)).await?.read_ok().await?; } Err(e) => { let fail = match e { @@ -266,7 +258,7 @@ impl Failed::Application(e) => Fail::generic_with_backtrace(jid, e), }; self.worker_states.register_failure(worker, fail.clone()); - self.report_failure_to_server(&fail).await?; + self.c.issue(&fail).await?.read_ok().await?; } } From 9329ea0afcee14cff5ba962a1033e4289c6fc26d Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 19:06:11 +0500 Subject: [PATCH 100/175] Restore docs on WorkerBuilder::connect --- src/worker/builder.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 95fe0038..58b23ad3 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -97,7 +97,7 @@ impl WorkerBuilder { self } - /// Asynchronously connect to a Faktory server with a non-standard stream. + /// Connect to a Faktory server with a non-standard stream. pub async fn connect_with( mut self, stream: S, @@ -110,9 +110,19 @@ impl WorkerBuilder { Ok(Worker::new(client, self.workers_count, self.callbacks).await) } - /// Asynchronously connect to a Faktory server. + /// Connect to a Faktory server. /// - /// See [`connect`](WorkerBuilder::connect). + /// If `url` is not given, will use the standard Faktory environment variables. Specifically, + /// `FAKTORY_PROVIDER` is read to get the name of the environment variable to get the address + /// from (defaults to `FAKTORY_URL`), and then that environment variable is read to get the + /// server address. If the latter environment variable is not defined, the connection will be + /// made to + /// + /// ```text + /// tcp://localhost:7419 + /// ``` + /// + /// If `url` is given, but does not specify a port, it defaults to 7419. pub async fn connect( mut self, url: Option<&str>, From 3b055857dbf617a86ad3ad3b0b67848a439f7d61 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 19:25:21 +0500 Subject: [PATCH 101/175] Place comments in worker::mod to original location --- src/worker/mod.rs | 14 ++++++++------ src/worker/state.rs | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 8d5a7ad3..060a26bc 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -212,19 +212,21 @@ impl Ok(()) } - // FAIL currently running jobs even though they're still running. - // Returns the number of workers that may still be processing jobs. - // We are ignoring any FAIL command issue errors, since this is already - // an "emergency" case. + /// Fail currently running jobs. + /// + /// This will FAIL _all_ the jobs even though they're still running. + /// Returns the number of workers that may still be processing jobs. async fn force_fail_all_workers(&mut self) -> usize { let mut running = 0; for wstate in &*self.worker_states { - let may_be_jid = wstate.lock().unwrap().take_cuurently_running(); + let may_be_jid = wstate.lock().unwrap().take_currently_running(); if let Some(jid) = may_be_jid { running += 1; - let f = Fail::new(jid, "unknown", "terminated"); + let f = Fail::generic(jid, "terminated"); let _ = match self.c.issue(&f).await { Ok(r) => r.read_ok().await, + // We are ignoring any FAIL command issue errors, since this is already + // an "emergency" case. Err(_) => continue, } .is_ok(); diff --git a/src/worker/state.rs b/src/worker/state.rs index 78f17d20..f8f8ea5d 100644 --- a/src/worker/state.rs +++ b/src/worker/state.rs @@ -15,7 +15,7 @@ impl WorkerState { self.last_job_result.take() } - pub(crate) fn take_cuurently_running(&mut self) -> Option { + pub(crate) fn take_currently_running(&mut self) -> Option { self.running_job.take() } From 14e06adcc805f23f79e5fdccd2c56eeb94e5a9b2 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 20:05:50 +0500 Subject: [PATCH 102/175] Rm redundate .take on statuses iterator --- src/worker/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 060a26bc..e4cffeaa 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -330,7 +330,7 @@ impl< .collect(); let mut workers = Vec::with_capacity(workers_count); - for (worker, status) in statuses.iter().enumerate().take(workers_count) { + for (worker, status) in statuses.iter().enumerate() { let handle = self .spawn_worker(Arc::clone(status), worker, queues) .await?; From df8a4b11720e00f053181cfb3418558b050d84fc Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 23 Apr 2024 20:22:05 +0500 Subject: [PATCH 103/175] Run cargo fmt --- src/worker/runner.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/worker/runner.rs b/src/worker/runner.rs index f3f12268..96b9e4bc 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -90,16 +90,16 @@ where } /// A wrapper for the userland's handler. -/// +/// /// The `Closure` newtype is introduced to avoid having to box a job handler: /// we can now use `Closure(handler)` instead of `Box::new(handler)` and make /// the compiler happy. -/// +/// /// The `repr(transparent)` macro is to guarantee that this single-field struct /// and the wrapped handler have the same layout and so it is safe to operate on /// the in-memory representations of _the_ handler (submitted to us /// from the userland) and its enclosed (by us) self. -/// +/// /// Ref: https://github.com/jonhoo/faktory-rs/pull/51 #[repr(transparent)] pub(crate) struct Closure(pub F); From 2bd215d37561344dbb882cccf5a34c4a8fe188b7 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 24 Apr 2024 19:06:55 +0500 Subject: [PATCH 104/175] Use JoinSet in Worker::run. Update consumer::terminate test. --- src/worker/mod.rs | 41 +++++++++---- tests/consumer.rs | 149 +++++++++++++++++++++++++++++++++++++--------- tests/mock/mod.rs | 4 ++ 3 files changed, 154 insertions(+), 40 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index e4cffeaa..b7eaa86b 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -5,7 +5,7 @@ use fnv::FnvHashMap; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufRead, AsyncWrite}; -use tokio::task::JoinHandle; +use tokio::task::{AbortHandle, JoinSet}; mod builder; mod health; @@ -277,6 +277,19 @@ impl< { async fn for_worker(&mut self) -> Result { Ok(Worker { + // We actually only need: + // + // 1) a connected client; + // 2) access to callback registry; + // 3) access to this worker's state (not all of them) + // + // For simplicity, we are currently creating a processing worker as a full replica + // of the coordinating worker. + // + // In the future though this can be updated to strip off `terminated` from + // the processing worker (as unused) and disallow access to other processing workers' + // states from inside this processing worker (as privilege not needed). + // c: self.c.connect_again().await?, callbacks: Arc::clone(&self.callbacks), worker_states: Arc::clone(&self.worker_states), @@ -284,18 +297,19 @@ impl< }) } - async fn spawn_worker( + async fn spawn_worker_into( &mut self, + set: &mut JoinSet>, status: Arc, worker: usize, queues: &[Q], - ) -> Result>, Error> + ) -> Result where Q: AsRef, { let mut w = self.for_worker().await?; let queues: Vec<_> = queues.iter().map(|s| s.as_ref().to_string()).collect(); - Ok(tokio::spawn(async move { + Ok(set.spawn(async move { while status.load(atomic::Ordering::SeqCst) == STATUS_RUNNING { if let Err(e) = w.run_one(worker, &queues[..]).await { status.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); @@ -319,7 +333,10 @@ impl< where Q: AsRef, { - assert!(!self.terminated, "do not re-run a terminated worker"); + assert!( + !self.terminated, + "do not re-run a terminated worker (coordinator)" + ); self.report_on_all_workers().await?; let workers_count = self.worker_states.len(); @@ -329,12 +346,11 @@ impl< .map(|_| Arc::new(atomic::AtomicUsize::new(STATUS_RUNNING))) .collect(); - let mut workers = Vec::with_capacity(workers_count); + let mut join_set = JoinSet::new(); for (worker, status) in statuses.iter().enumerate() { - let handle = self - .spawn_worker(Arc::clone(status), worker, queues) + let _abort_handle = self + .spawn_worker_into(&mut join_set, Arc::clone(status), worker, queues) .await?; - workers.push(handle) } let exit = self.listen_for_heartbeats(&statuses).await; @@ -342,7 +358,7 @@ impl< // there are a couple of cases here: // // - we got TERMINATE, so we should just return, even if a worker is still running - // - we got TERMINATE and all workers has exited + // - we got TERMINATE and all workers have exited // - we got an error from heartbeat() // self.terminated = exit.is_ok(); @@ -356,9 +372,10 @@ impl< // we want to expose worker errors, or otherwise the heartbeat error let mut results = Vec::with_capacity(workers_count); - for w in workers { - results.push(w.await.expect("joined ok")); + while let Some(res) = join_set.join_next().await { + results.push(res.expect("joined ok")); } + let result = results.into_iter().collect::, _>>(); match exit { diff --git a/tests/consumer.rs b/tests/consumer.rs index bf050ec4..7e274f2f 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -1,3 +1,59 @@ +/// This sketch should help appreciate how mock streams are being distributed across workers. +/// +/// Side-note. Note how `CLIENT` (another node), `WEB UI` (browser), `FAKTORY SERVER` (contribsys Faktory binary), +/// and `FAKTORY WORKER (COORDINATOR)` are all separate processes (but `client` and `worker` _can_ belong +/// to the same process), while processing workers are threads (tokio tasks) in the `FAKTORY WORKER` process. +/// +/// __________________________ +/// | | __________ +/// | CLIENT | | | +/// | (PRODUCING AND TRACKING) | | WEB UI | +/// |__________________________| |__________| +/// | | +/// |:7419 _________________ | +/// | | | |:7420 +/// |---------------> | FAKTORY SERVER | <-----| +/// | localhost:7419 | +/// | localhost:7420 | +/// |---------------> |_________________| +/// |:7419 +/// | +/// | ___________________________________________________________________________________________________ +/// | | | +/// |_____________ | FAKTORY WORKER (COORDINATOR) | +/// | | with at least N + 2 threads: main thread, heartbeat thread, and N processing worker threads - | +/// | | tokio tasks - the actual workers; the desired count is specified via WorkerBuilder::workers(N) | +/// | | | +/// | |--> HEARTBEAT | +/// | | - send b"BEAT {\"wid\":\"wid\"}" to Faktory every 5 seconds; | +/// | | - set workers quiet if Faktory asked so; | +/// | | - terminate workers if: | +/// | | - corresponding signal received from Faktory (returning Ok(true)) | +/// | | - one of the workers failed (returning Ok(false)) | +/// | | - critical error in HEARTBEART thread occurs (returning Err(e) | +/// | | | +/// | |--> WORKER (index 0) with the following life-cycle: | +/// | - get owned stream by reconnecting coordinator client via `self.stream.reconnect().await` | +/// | (which for TcpStream will lead to establishing a new TCP connection to localhost:7419); | | +/// | - init a `Client` (say HELLO to HI); | +/// | - loop { self.run_one().await } until critical error or signal from coordinator; | +/// | |--> ... | +/// | |--> WORKER (index N) | +/// |___________________________________________________________________________________________________| +/// +/// Note how each processing worker is getting its owned stream and how we can control which stream is return +/// by means of implementing `Reconnect` for the stream we are supplying to the `Worker` initially. +/// +/// So, what we are doing for testing purposes is: +/// 1) provide a [`Stream`] to [`connect_with`](`WorkerBuilder::connect_with`) that will be holding inside a vector of mock streams +/// and with a reference to the stream of current interest (see `mine` field on [`Stream`]) and a "pointer" (see `take_next` field +/// on the private `mock::inner::Innner`) to the stream that will be given away on next call of `reconnect`; +/// 2) implement [`AsyncRead`] and [`AsyncWrite`] for the [`Stream`] so that internally we are polling read and write against the stream +/// referenced by [`mine`](Stream::mine). +/// 3) implement [`faktory::Reconnect`] for the [`Stream`] in a way that each time they call the `reconnect` method of the stream +/// we set `mine` to reference the stream that the "pointer" is currently pointing to and increment the "pointer" by 1; +/// 4) implement `Drop` for `mock::Stream` in a way that if the value of the "pointer" is not equal the length of the internal +/// vector of streams, we panic to indicate that we mis-planned things when setting up the test; mod mock; use faktory::*; @@ -215,7 +271,7 @@ async fn well_behaved() { #[tokio::test(flavor = "multi_thread")] async fn no_first_job() { - let mut s = mock::Stream::new(2); + let mut s = mock::Stream::new(2); // main plus worker let mut c = WorkerBuilder::default(); c.wid(WorkerId::new("wid")); c.register("foobar", |_| async move { @@ -281,16 +337,16 @@ async fn no_first_job() { #[tokio::test(flavor = "multi_thread")] async fn well_behaved_many() { - let mut s = mock::Stream::new(3); - let mut c = WorkerBuilder::default(); - c.workers(2); - c.wid(WorkerId::new("wid")); - c.register("foobar", |_| async move { + let mut s = mock::Stream::new(3); // main plus 2 workers + let mut w = WorkerBuilder::default(); + w.workers(2); + w.wid(WorkerId::new("wid")); + w.register("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; Ok::<(), io::Error>(()) }); - let mut c = c.connect_with(s.clone(), None).await.unwrap(); + let mut w = w.connect_with(s.clone(), None).await.unwrap(); s.ignore(0); // push two jobs that'll take a while to run @@ -316,7 +372,7 @@ async fn well_behaved_many() { ); } - let jh = spawn(async move { c.run(&["default"]).await }); + let jh = spawn(async move { w.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -357,17 +413,30 @@ async fn well_behaved_many() { #[tokio::test(flavor = "multi_thread")] async fn terminate() { - let mut s = mock::Stream::new(2); - let mut c: WorkerBuilder = WorkerBuilder::default(); - c.wid(WorkerId::new("wid")); - c.register("foobar", |_| async move { + // Internally, the `take_next` member on the `mock::Inner` struct will be incremented from `0` to `1`, + // while the `Stream::mine` wil be pointing to stream with index 0. See how we are later on ignoring bytes + // written to this stream by means of `s.ignore(0)`. + let mut s = mock::Stream::new(2); // main plus worker + + // prepare a worker with only never (!) returning handler + let mut w: WorkerBuilder = WorkerBuilder::default(); + w.hostname("machine".into()); + w.wid(WorkerId::new("wid")); + w.register("foobar", |_| async move { loop { sleep(Duration::from_secs(5)).await; } }); - let mut c = c.connect_with(s.clone(), None).await.unwrap(); + + let mut w = w.connect_with(s.clone(), None).await.unwrap(); + // what now is being ignored on `mine` channel are these written bytes (pid will vary): + // b"HELLO {\"hostname\":\"machine\",\"wid\":\"wid\",\"pid\":7332,\"labels\":[\"rust\"],\"v\":2}\r\n" + // this was the HELLO from main (coordinating) worker s.ignore(0); + // as if a producing client had sent this job to Faktory and Faktory, in its turn, + // had sent it to the processing (NB) worker, rather than coordinating one (note how we + // are passing `1` as first arg to `s.push_bytes_to_read`) s.push_bytes_to_read( 1, b"$186\r\n\ @@ -383,25 +452,34 @@ async fn terminate() { }\r\n", ); - let jh = spawn(async move { c.run(&["default"]).await }); + let jh = spawn(async move { + // Note how running a coordinating leads to mock::Stream::reconnect: + // `Worker::run` -> `Worker::spawn_worker_into` -> `Worker::for_worker` -> `Client::connect_again` -> `Stream::reconnect` + // + // So when the `w.run` is triggered, `Stream::reconnect` will fire and the `take_next` member on the `mock::Inner` struct + // will be incremented from `1` to `2`. But, most importently, `mine` will now be pointing to the second + // stream (stream with index 1) from this test, and the _actual_ worker (not the master worker (coordinator)) will + // be talking via this stream. + w.run(&["default"]).await + }); // the running thread won't ever return, because the job never exits. the heartbeat thingy is - // going to eventually send a heartbeat, and we want to respond to that with a "terminate" + // going to eventually (in ~5 seconds) send a heartbeat, and we want to respond to that with a "terminate" s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should immediately return with Ok(1) indicating that one job is still // running. assert_eq!(jh.await.unwrap().unwrap(), 1); - // heartbeat should have seen one beat (terminate) and then send FAIL + // Heartbeat Thread (stream with index 0). + // + // Heartbeat thread should have sent one BEAT command, then an immediate FAIL, and a final END: + // <---------- BEAT ---------><---------------------------- FAIL JOB -----------------------------------------><-END-> + // "BEAT {\"wid\":\"wid\"}\r\nFAIL {\"jid\":\"forever\",\"errtype\":\"unknown\",\"message\":\"terminated\"}\r\nEND\r\n" let written = s.pop_bytes_written(0); let beat = b"BEAT {\"wid\":\"wid\"}\r\nFAIL "; assert_eq!(&written[0..beat.len()], &beat[..]); assert!(written.ends_with(b"\r\nEND\r\n")); - println!( - "{}", - std::str::from_utf8(&written[beat.len()..(written.len() - b"\r\nEND\r\n".len())]).unwrap() - ); let written: serde_json::Value = serde_json::from_slice(&written[beat.len()..(written.len() - b"\r\nEND\r\n".len())]) .unwrap(); @@ -412,13 +490,28 @@ async fn terminate() { .and_then(|v| v.as_str()), Some("forever") ); - - // worker should have just fetched once + assert_eq!(written.get("errtype").unwrap().as_str(), Some("unknown")); + assert_eq!(written.get("message").unwrap().as_str(), Some("terminated")); + + // Let's give the worker's client a chance to complete clean up on Client's drop (effectively send `END\r\n`), + // and only after that pop bytes written into its stream. If we do not do this, we will end up with a flaky + // test, where `END\r\n` will sometimes make it to the writer and sometimes not. The `500` ms are empirical. + sleep(Duration::from_millis(500)).await; + + // Worker Thread (stream with index 1). + // + // Worker thread should have sent HELLO (which in coordinator case we thew away with `s.ignore(0)`), FETCH ( + // consume one job from the "default" queue), and END (which is performed as Client's clean-up). + // <------------------------------------ HELLO (PASSWORDLESS) -------------------------------------><--- FETCH -----><-END-> + // "HELLO {\"hostname\":\"machine\",\"wid\":\"wid\",\"pid\":12628,\"labels\":[\"rust\"],\"v\":2}\r\nFETCH default\r\nEND\r\n" let written = s.pop_bytes_written(1); - let msgs = "\r\n\ - FETCH default\r\n"; - assert_eq!( - std::str::from_utf8(&written[(written.len() - msgs.len())..]).unwrap(), - msgs - ); + assert!(written.starts_with(b"HELLO {\"hostname\":\"machine\",\"wid\":\"wid\"")); + assert!(written.ends_with(b"\r\nFETCH default\r\nEND\r\n")); + + // P.S. Interestingly, before we switched to `JoinSet` in `Worker::run` internals, this last `END\r\n` + // of the processing worker never actually got to the bytes written, no matter how much time you sleep + // before popping those bytes from the mock stream. + // + // But generally speaking, the graceful situation is when the number of `HI`s and the number of `END`s are + // equal. Why did they decide for `END` instead of `BYE` in Faktory ? :smile: } diff --git a/tests/mock/mod.rs b/tests/mock/mod.rs index 17c45327..f3858585 100644 --- a/tests/mock/mod.rs +++ b/tests/mock/mod.rs @@ -100,6 +100,10 @@ impl Stream { }; let mine = inner.take_stream().unwrap(); + // So if they asked for two stream (see `consumer::terminate` test), + // the first one will be `mine` while they both will be accessible + // internally via `all` (since `Inner::take_stream` is not actually + // taking, it is rather _cloning_). Stream { mine, all: Arc::new(Mutex::new(inner)), From 2d4da652651d0a15ef0f4355203b93ce4bfba192 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 24 Apr 2024 20:27:41 +0500 Subject: [PATCH 105/175] Update signature in batch ent methods to accept AsRef --- src/proto/batch/cmd.rs | 23 ++++++++++++++++------- src/proto/batch/handle.rs | 2 +- src/proto/batch/status.rs | 2 +- src/proto/client/ent.rs | 27 +++++++++++++++++---------- src/proto/single/id.rs | 6 ++++++ 5 files changed, 41 insertions(+), 19 deletions(-) diff --git a/src/proto/batch/cmd.rs b/src/proto/batch/cmd.rs index 27329a36..ecab54f2 100644 --- a/src/proto/batch/cmd.rs +++ b/src/proto/batch/cmd.rs @@ -14,30 +14,39 @@ impl FaktoryCommand for Batch { macro_rules! batch_cmd { ($structure:ident, $cmd:expr) => { - impl From for $structure { - fn from(value: BatchId) -> Self { + impl> From for $structure { + fn from(value: B) -> Self { $structure(value) } } #[async_trait::async_trait] - impl FaktoryCommand for $structure { + impl FaktoryCommand for $structure + where + B: AsRef + Sync, + { async fn issue(&self, w: &mut W) -> Result<(), Error> { w.write_all(b"BATCH ").await?; w.write_all($cmd.as_bytes()).await?; w.write_all(b" ").await?; - w.write_all(self.0.as_bytes()).await?; + w.write_all(self.0.as_ref().as_bytes()).await?; Ok(w.write_all(b"\r\n").await?) } } }; } -pub(crate) struct CommitBatch(BatchId); +pub(crate) struct CommitBatch(B) +where + B: AsRef; batch_cmd!(CommitBatch, "COMMIT"); -pub(crate) struct GetBatchStatus(BatchId); +pub(crate) struct GetBatchStatus(B) +where + B: AsRef; batch_cmd!(GetBatchStatus, "STATUS"); -pub(crate) struct OpenBatch(BatchId); +pub(crate) struct OpenBatch(B) +where + B: AsRef; batch_cmd!(OpenBatch, "OPEN"); diff --git a/src/proto/batch/handle.rs b/src/proto/batch/handle.rs index b8550a94..88dac29e 100644 --- a/src/proto/batch/handle.rs +++ b/src/proto/batch/handle.rs @@ -41,6 +41,6 @@ impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { /// Once committed, the batch can still be re-opened with [open_batch](Client::open_batch), /// and extra jobs can be added to it. pub async fn commit(self) -> Result<(), Error> { - self.c.commit_batch(self.bid).await + self.c.commit_batch(&self.bid).await } } diff --git a/src/proto/batch/status.rs b/src/proto/batch/status.rs index 9d52e38f..5a884f65 100644 --- a/src/proto/batch/status.rs +++ b/src/proto/batch/status.rs @@ -87,6 +87,6 @@ impl<'a> BatchStatus { &self, prod: &'a mut Client, ) -> Result>, Error> { - prod.open_batch(self.bid.clone()).await + prod.open_batch(&self.bid).await } } diff --git a/src/proto/client/ent.rs b/src/proto/client/ent.rs index c3c83daf..2f881c15 100644 --- a/src/proto/client/ent.rs +++ b/src/proto/client/ent.rs @@ -2,10 +2,10 @@ use super::super::batch::{CommitBatch, GetBatchStatus, OpenBatch}; use super::super::{single, BatchStatus, JobId, Progress, ProgressUpdate, Track}; use super::{Client, ReadToken}; use crate::ent::{Batch, BatchHandle, BatchId}; -use crate::error::Error; -use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use crate::error::{self, Error}; +use tokio::io::{AsyncBufRead, AsyncWrite}; -impl Client { +impl Client { /// Send information on a job's execution progress to Faktory. pub async fn set_progress(&mut self, upd: ProgressUpdate) -> Result<(), Error> { let cmd = Track::Set(upd); @@ -19,8 +19,11 @@ impl Client { } /// Fetch information on a batch of jobs execution progress. - pub async fn get_batch_status(&mut self, bid: BatchId) -> Result, Error> { - let cmd = GetBatchStatus::from(bid); + pub async fn get_batch_status(&mut self, bid: B) -> Result, Error> + where + B: AsRef + Sync, + { + let cmd = GetBatchStatus::from(&bid); self.issue(&cmd).await?.read_json().await } @@ -34,24 +37,28 @@ impl Client { /// /// This will not error if a batch with the provided `bid` does not exist, /// rather `Ok(None)` will be returned. - pub async fn open_batch(&mut self, bid: BatchId) -> Result>, Error> { + pub async fn open_batch(&mut self, bid: B) -> Result>, Error> + where + B: AsRef + Sync, + { let bid = self.issue(&OpenBatch::from(bid)).await?.maybe_bid().await?; Ok(bid.map(|bid| BatchHandle::new(bid, self))) } - pub(crate) async fn commit_batch(&mut self, bid: BatchId) -> Result<(), Error> { + pub(crate) async fn commit_batch(&mut self, bid: B) -> Result<(), Error> + where + B: AsRef + Sync, + { self.issue(&CommitBatch::from(bid)).await?.read_ok().await } } -impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { +impl<'a, S: AsyncBufRead + AsyncWrite + Unpin + Send> ReadToken<'a, S> { pub(crate) async fn read_bid(self) -> Result { single::read_bid(&mut self.0.stream).await } pub(crate) async fn maybe_bid(self) -> Result, Error> { - use crate::error; - let bid_read_res = single::read_bid(&mut self.0.stream).await; if bid_read_res.is_ok() { return Ok(Some(bid_read_res.unwrap())); diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs index 9bb7b57c..cd07acc5 100644 --- a/src/proto/single/id.rs +++ b/src/proto/single/id.rs @@ -26,6 +26,12 @@ macro_rules! string_wrapper_impls { self.deref().as_ref() } } + + impl AsRef<$new_type> for $new_type { + fn as_ref(&self) -> &$new_type { + &self + } + } }; } From 07039830b76d76f3650578454222924781a3200a Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 24 Apr 2024 20:41:26 +0500 Subject: [PATCH 106/175] Add serde transparent for newtype ids --- src/proto/single/id.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs index cd07acc5..9add5eb4 100644 --- a/src/proto/single/id.rs +++ b/src/proto/single/id.rs @@ -43,6 +43,7 @@ macro_rules! string_wrapper_impls { /// If you do not have any domain, product or organisation specific requirements, you may prefer /// to have a random job identifier generated for you with [`random`](JobId::random). #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(transparent)] pub struct JobId(String); impl JobId { @@ -64,6 +65,7 @@ string_wrapper_impls!(JobId); /// If you do not have any domain, product or organisation specific requirements, you may prefer /// to have a random job identifier generated for you with [`random`](WorkerId::random). #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(transparent)] pub struct WorkerId(String); impl WorkerId { @@ -82,6 +84,7 @@ string_wrapper_impls!(WorkerId); /// This is a wrapper over the string identifier issued by the Faktory server. /// Only used for operations with [`Batch`](struct.Batch.html) in Enterprise Faktory. #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(transparent)] pub struct BatchId(String); string_wrapper_impls!(BatchId); From 55d9beaac2f1d4ee51ef25676f5ed83009477db5 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 24 Apr 2024 21:31:05 +0500 Subject: [PATCH 107/175] Ask for String rather than &str in TlsStream::new --- src/tls/native_tls.rs | 15 +++++++-------- src/tls/rustls.rs | 5 ++--- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/tls/native_tls.rs b/src/tls/native_tls.rs index 95273a88..93df07c5 100644 --- a/src/tls/native_tls.rs +++ b/src/tls/native_tls.rs @@ -71,7 +71,7 @@ impl TlsStream { }?; let hostname = utils::host_from_url(&url); let tcp_stream = TokioTcpStream::connect(&hostname).await?; - Ok(TlsStream::new(tcp_stream, connector, &hostname).await?) + Ok(TlsStream::new(tcp_stream, connector, hostname).await?) } } @@ -84,7 +84,7 @@ where /// Internally creates a `ClientConfig` with an empty root certificates store and no client /// authentication. Use [`new`](TlsStream::new) for a customized `TlsConnector`. /// Create a new TLS connection on an existing stream. - pub async fn default(stream: S, hostname: &str) -> io::Result { + pub async fn default(stream: S, hostname: String) -> io::Result { let connector = TlsConnector::builder() .build() .map_err(error::TlsStream::Native) @@ -96,17 +96,16 @@ where pub async fn new( stream: S, connector: impl Into, - hostname: &str, + hostname: String, ) -> io::Result { - let domain = hostname.try_into().expect("a valid DNS name or IP address"); - let connector = connector.into(); + let connector: AsyncTlsConnector = connector.into(); let tls_stream = connector - .connect(domain, stream) + .connect(&hostname, stream) .await .map_err(|e| io::Error::new(io::ErrorKind::ConnectionAborted, e))?; Ok(TlsStream { connector, - hostname: hostname.into(), + hostname, stream: tls_stream, }) } @@ -125,7 +124,7 @@ where .get_mut() .reconnect() .await?; - Self::new(stream, self.connector.clone(), &self.hostname).await + Self::new(stream, self.connector.clone(), self.hostname.clone()).await } } diff --git a/src/tls/rustls.rs b/src/tls/rustls.rs index 24f7cba2..612e4930 100644 --- a/src/tls/rustls.rs +++ b/src/tls/rustls.rs @@ -82,7 +82,7 @@ impl TlsStream { }?; let host_and_port = utils::host_from_url(&url); let tcp_stream = TokioTcpStream::connect(&host_and_port).await?; - let host = url.host_str().unwrap(); + let host = url.host_str().unwrap().to_string().leak(); Ok(TlsStream::new(tcp_stream, connector, host).await?) } } @@ -107,9 +107,8 @@ where pub async fn new( stream: S, connector: TlsConnector, - hostname: impl Into, + hostname: &'static str, ) -> io::Result { - let hostname: &'static str = hostname.into().leak(); TlsStream::create_new(stream, connector, hostname).await } From 8d91c26e20724b2f966184bfe42f19d41e7981cf Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 24 Apr 2024 21:35:49 +0500 Subject: [PATCH 108/175] Rm redundant TlsStrean::create_new --- src/tls/rustls.rs | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/src/tls/rustls.rs b/src/tls/rustls.rs index 612e4930..a08299a4 100644 --- a/src/tls/rustls.rs +++ b/src/tls/rustls.rs @@ -108,21 +108,6 @@ where stream: S, connector: TlsConnector, hostname: &'static str, - ) -> io::Result { - TlsStream::create_new(stream, connector, hostname).await - } - - /// Actually create new `TlsStream`. - /// - /// This private faktory method is needed to be able re-use the already `&'static str` hostname - /// when re-connecting, rather than allocate new String and leak it yet again. - /// - /// See how we are leaking the `hostname` in [`new`](TlsStream::new) constructor. This is needed - /// to satisfy the `tokio_rustls::TlsConnector::connect` which is expecting a `pki_types::ServerName<'static>`. - async fn create_new( - stream: S, - connector: TlsConnector, - hostname: &'static str, ) -> io::Result { let server_name = hostname.try_into().expect("a valid DNS name or IP address"); let tls_stream = connector @@ -144,7 +129,7 @@ where { async fn reconnect(&mut self) -> io::Result { let stream = self.stream.get_mut().0.reconnect().await?; - TlsStream::create_new(stream, self.connector.clone(), self.hostname).await + TlsStream::new(stream, self.connector.clone(), self.hostname).await } } From a44c63af8e5d1af41d081b19c09bd45d2edaddb9 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 24 Apr 2024 22:04:14 +0500 Subject: [PATCH 109/175] Pin serde at 1.0.186 to make min versions pass --- Cargo.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index ea164c0e..6a4e8417 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,6 +62,11 @@ oid-registry = "0.6.1" openssl = { version = "0.10.60", optional = true } rustls = "0.22.1" +# Lockstep between `serde` and `serde_derive` was introduced with the "pinned" release: +# https://github.com/serde-rs/serde/compare/v1.0.185...v1.0.186#diff-2843fc1320fa24a059f5ca967ee45d116110116263a8ba311a3aca3793c562f0R34-R41 +# Without this pin our `#[serde(transparent)]` and `#[derive(Serialize, Deserialize)] do not play well together. +serde = "1.0.186" + [[bin]] name = "loadtest" path = "src/bin/loadtest.rs" From a08854844daf7742f0f71114c2de13cd0746699c Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 00:42:21 +0500 Subject: [PATCH 110/175] Add WorkerBuilder::add_to_labels method. Demonstrate in test --- src/worker/builder.rs | 25 +++++++++++++++++++++++-- tests/consumer.rs | 11 +++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 58b23ad3..307c0470 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -56,8 +56,29 @@ impl WorkerBuilder { /// Set the labels to use for this worker. /// /// Defaults to `["rust"]`. - pub fn labels(&mut self, labels: Vec) -> &mut Self { - self.opts.labels = labels; + /// + /// Note that calling this overrides the labels set previously. + /// + /// If you need to extend the labels already set, use [`WorkerBuilder::add_to_labels`] instead. + pub fn labels(&mut self, labels: I) -> &mut Self + where + I: IntoIterator, + { + self.opts.labels = labels.into_iter().collect(); + self + } + + /// Extend the worker's labels. + /// + /// Note that calling this will add the provided labels to those that are already there or - + /// if no labels have been explicitly set before - to the default `"rust"` label. + /// + /// If you need to override the labels set previously, use [`WorkerBuilder::labels`] instead. + pub fn add_to_labels(&mut self, labels: I) -> &mut Self + where + I: IntoIterator, + { + self.opts.labels.extend(labels); self } diff --git a/tests/consumer.rs b/tests/consumer.rs index 7e274f2f..0810335e 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -66,7 +66,14 @@ async fn hello() { let mut c: WorkerBuilder = WorkerBuilder::default(); c.hostname("host".to_string()) .wid(WorkerId::new("wid")) - .labels(vec!["foo".to_string(), "bar".to_string()]); + .labels([ + "will".to_string(), + "be!".to_string(), + "overwritten".to_string(), + ]) + .labels(["foo".to_string(), "bar".to_string()]) + .add_to_labels(["will".to_string()]) + .add_to_labels(["be".to_string(), "added".to_string()]); c.register("never_called", |_j: Job| async move { unreachable!() }); let c = c.connect_with(s.clone(), None).await.unwrap(); let written = s.pop_bytes_written(0); @@ -81,7 +88,7 @@ async fn hello() { assert_eq!(written.get("pid").map(|h| h.is_number()), Some(true)); assert_eq!(written.get("v").and_then(|h| h.as_i64()), Some(2)); let labels = written["labels"].as_array().unwrap(); - assert_eq!(labels, &["foo", "bar"]); + assert_eq!(labels, &["foo", "bar", "will", "be", "added"]); drop(c); let written = s.pop_bytes_written(0); From ce4a65f820da91a4953ab8461056cac03e4fa78c Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 00:56:11 +0500 Subject: [PATCH 111/175] Rm empty line in WorkerBuilder::register --- src/worker/builder.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 307c0470..89e44363 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -97,7 +97,6 @@ impl WorkerBuilder { pub fn register(&mut self, kind: K, handler: H) -> &mut Self where K: Into, - H: Fn(Job) -> Fut + Send + Sync + 'static, Fut: Future> + Send, { From da28e8d85516a1ff67927fb92db0f10256a752be Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 07:05:37 +0500 Subject: [PATCH 112/175] Rename WorkerBuilder::register to WorkerBuilder::register_fn --- src/bin/loadtest.rs | 2 +- src/lib.rs | 2 +- src/worker/builder.rs | 6 +++--- src/worker/mod.rs | 6 +++--- src/worker/runner.rs | 2 +- tests/consumer.rs | 16 ++++++++-------- tests/real/community.rs | 20 ++++++++++---------- tests/real/enterprise.rs | 26 +++++++++++++------------- tests/tls/native_tls.rs | 2 +- tests/tls/rustls.rs | 2 +- 10 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index bdeccc17..aa1bec09 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -59,7 +59,7 @@ async fn main() { // make producer and consumer let mut p = Client::connect(None).await.unwrap(); let mut c = WorkerBuilder::default(); - c.register("SomeJob", |_| { + c.register_fn("SomeJob", |_| { Box::pin(async move { let mut rng = rand::thread_rng(); if rng.gen_bool(0.01) { diff --git a/src/lib.rs b/src/lib.rs index b73211f5..57a4a0be 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -51,7 +51,7 @@ //! use faktory::WorkerBuilder; //! use std::io; //! let mut w = WorkerBuilder::default(); -//! w.register("foobar", |job| async move { +//! w.register_fn("foobar", |job| async move { //! println!("{:?}", job); //! Ok::<(), io::Error>(()) //! }); diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 89e44363..1cbdc2ef 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -94,13 +94,13 @@ impl WorkerBuilder { /// /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler /// function is called with that job as its argument. - pub fn register(&mut self, kind: K, handler: H) -> &mut Self + pub fn register_fn(&mut self, kind: K, handler: H) -> &mut Self where K: Into, H: Fn(Job) -> Fut + Send + Sync + 'static, Fut: Future> + Send, { - self.register_runner(kind, Closure(handler)); + self.register(kind, Closure(handler)); self } @@ -108,7 +108,7 @@ impl WorkerBuilder { /// /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler /// object is called with that job as its argument. - pub fn register_runner(&mut self, kind: K, runner: H) -> &mut Self + pub fn register(&mut self, kind: K, runner: H) -> &mut Self where K: Into, H: JobRunner + 'static, diff --git a/src/worker/mod.rs b/src/worker/mod.rs index b7eaa86b..2309d62e 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -112,7 +112,7 @@ type CallbacksRegistry = FnvHashMap>; /// /// let mut w = WorkerBuilder::default(); /// -/// w.register("foo", process_job); +/// w.register_fn("foo", process_job); /// /// let mut w = w.connect(None).await.unwrap(); /// if let Err(e) = w.run(&["default"]).await { @@ -127,14 +127,14 @@ type CallbacksRegistry = FnvHashMap>; /// # use faktory::WorkerBuilder; /// # use std::io; /// let mut w = WorkerBuilder::default(); -/// w.register("bar", |job| async move { +/// w.register_fn("bar", |job| async move { /// println!("{:?}", job); /// Ok::<(), io::Error>(()) /// }); /// ``` /// /// You can also register anything that implements [`JobRunner`] to handle jobs -/// with [`register_runner`](WorkerBuilder::register_runner). +/// with [`register`](WorkerBuilder::register). /// pub struct Worker { c: Client, diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 96b9e4bc..ba2e1872 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -36,7 +36,7 @@ use std::future::Future; /// let handler = MyHandler { /// config: "bar".to_string(), /// }; -/// w.register_runner("foo", handler); +/// w.register("foo", handler); /// let mut w = w.connect(None).await.unwrap(); /// if let Err(e) = w.run(&["default"]).await { /// println!("worker failed: {}", e); diff --git a/tests/consumer.rs b/tests/consumer.rs index 0810335e..b6ef494d 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -74,7 +74,7 @@ async fn hello() { .labels(["foo".to_string(), "bar".to_string()]) .add_to_labels(["will".to_string()]) .add_to_labels(["be".to_string(), "added".to_string()]); - c.register("never_called", |_j: Job| async move { unreachable!() }); + c.register_fn("never_called", |_j: Job| async move { unreachable!() }); let c = c.connect_with(s.clone(), None).await.unwrap(); let written = s.pop_bytes_written(0); assert!(written.starts_with(b"HELLO {")); @@ -100,7 +100,7 @@ async fn hello_pwd() { let mut s = mock::Stream::with_salt(1545, "55104dc76695721d"); let mut c: WorkerBuilder = WorkerBuilder::default(); - c.register("never_called", |_j: Job| async move { unreachable!() }); + c.register_fn("never_called", |_j: Job| async move { unreachable!() }); let c = c .connect_with(s.clone(), Some("foobar".to_string())) .await @@ -121,7 +121,7 @@ async fn hello_pwd() { async fn dequeue() { let mut s = mock::Stream::default(); let mut c = WorkerBuilder::default(); - c.register("foobar", |job: Job| async move { + c.register_fn("foobar", |job: Job| async move { assert_eq!(job.args(), &["z"]); Ok::<(), io::Error>(()) }); @@ -160,7 +160,7 @@ async fn dequeue() { async fn dequeue_first_empty() { let mut s = mock::Stream::default(); let mut c = WorkerBuilder::default(); - c.register("foobar", |job: Job| async move { + c.register_fn("foobar", |job: Job| async move { assert_eq!(job.args(), &["z"]); Ok::<(), io::Error>(()) }); @@ -216,7 +216,7 @@ async fn well_behaved() { let mut s = mock::Stream::new(2); // main plus worker let mut c = WorkerBuilder::default(); c.wid(WorkerId::new("wid")); - c.register("foobar", |_| async move { + c.register_fn("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; Ok::<(), io::Error>(()) @@ -281,7 +281,7 @@ async fn no_first_job() { let mut s = mock::Stream::new(2); // main plus worker let mut c = WorkerBuilder::default(); c.wid(WorkerId::new("wid")); - c.register("foobar", |_| async move { + c.register_fn("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; Ok::<(), io::Error>(()) @@ -348,7 +348,7 @@ async fn well_behaved_many() { let mut w = WorkerBuilder::default(); w.workers(2); w.wid(WorkerId::new("wid")); - w.register("foobar", |_| async move { + w.register_fn("foobar", |_| async move { // NOTE: this time needs to be so that it lands between the first heartbeat and the second sleep(Duration::from_secs(7)).await; Ok::<(), io::Error>(()) @@ -429,7 +429,7 @@ async fn terminate() { let mut w: WorkerBuilder = WorkerBuilder::default(); w.hostname("machine".into()); w.wid(WorkerId::new("wid")); - w.register("foobar", |_| async move { + w.register_fn("foobar", |_| async move { loop { sleep(Duration::from_secs(5)).await; } diff --git a/tests/real/community.rs b/tests/real/community.rs index f9bdb208..b2157b07 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -16,7 +16,7 @@ async fn hello_worker() { let mut c = WorkerBuilder::::default(); c.hostname("tester".to_string()) .labels(vec!["foo".to_string(), "bar".to_string()]); - c.register("never_called", |_| async move { unreachable!() }); + c.register_fn("never_called", |_| async move { unreachable!() }); let c = c.connect(None).await.unwrap(); drop(c); } @@ -40,13 +40,13 @@ async fn roundtrip() { .labels(vec!["rust".into(), local.into()]) .workers(1) .wid(WorkerId::random()) - .register("order", move |job| async move { + .register_fn("order", move |job| async move { assert_eq!(job.kind(), "order"); assert_eq!(job.queue, local); assert_eq!(job.args(), &[Value::from("ISBN-13:9781718501850")]); Ok::<(), io::Error>(()) }) - .register("image", |_| async move { unreachable!() }); + .register_fn("image", |_| async move { unreachable!() }); let mut worker = worker.connect(None).await.unwrap(); let mut client = Client::connect(None).await.unwrap(); client @@ -76,7 +76,7 @@ async fn multi() { let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register(local, move |j| { + c.register_fn(local, move |j| { let tx = sync::Arc::clone(&tx); Box::pin(async move { tx.lock().unwrap().send(j).unwrap(); @@ -117,7 +117,7 @@ async fn fail() { let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register(local, move |j| { + c.register_fn(local, move |j| { let tx = sync::Arc::clone(&tx); Box::pin(async move { tx.lock().unwrap().send(j).unwrap(); @@ -153,7 +153,7 @@ async fn queue() { let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register(local, move |_job| { + c.register_fn(local, move |_job| { let tx = sync::Arc::clone(&tx); Box::pin(async move { tx.lock().unwrap().send(true) }) }); @@ -250,10 +250,10 @@ async fn test_jobs_pushed_in_bulk() { // is not an all-or-nothing operation: let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(WorkerId::new(local_3)); - c.register("very_special", move |_job| async { + c.register_fn("very_special", move |_job| async { Ok::<(), io::Error>(()) }); - c.register("broken", move |_job| async { Ok::<(), io::Error>(()) }); + c.register_fn("broken", move |_job| async { Ok::<(), io::Error>(()) }); let mut c = c.connect(None).await.unwrap(); // we targeted "very_special" jobs to "local_4" queue @@ -283,8 +283,8 @@ async fn test_jobs_created_with_builder() { // prepare a client and a worker: let mut cl = Client::connect(None).await.unwrap(); let mut w = WorkerBuilder::default(); - w.register("rebuild_index", assert_args_empty); - w.register("register_order", assert_args_not_empty); + w.register_fn("rebuild_index", assert_args_empty); + w.register_fn("register_order", assert_args_not_empty); let mut w = w.connect(None).await.unwrap(); diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index cb81d69d..db6dda42 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -43,7 +43,7 @@ async fn ent_expiring_job() { // prepare a client and a worker: let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = WorkerBuilder::default(); - c.register("AnExpiringJob", print_job); + c.register_fn("AnExpiringJob", print_job); let mut c = c.connect(Some(&url)).await.unwrap(); // prepare an expiring job: @@ -92,7 +92,7 @@ async fn ent_unique_job() { // prepare client and worker: let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = WorkerBuilder::default(); - c.register(job_type, print_job); + c.register_fn(job_type, print_job); let mut c = c.connect(Some(&url)).await.unwrap(); // Reminder. Jobs are considered unique for kind + args + queue. @@ -208,7 +208,7 @@ async fn ent_unique_job_until_success() { // to work hard: let mut client_a = Client::connect(Some(&url1)).await.unwrap(); let mut worker_a = WorkerBuilder::default(); - worker_a.register(job_type, |job| async move { + worker_a.register_fn(job_type, |job| async move { let args = job.args().to_owned(); let mut args = args.iter(); let diffuculty_level = args @@ -288,7 +288,7 @@ async fn ent_unique_job_until_start() { let handle = tokio::spawn(async move { let mut client_a = Client::connect(Some(&url1)).await.unwrap(); let mut worker_a = WorkerBuilder::default(); - worker_a.register(job_type, |job| async move { + worker_a.register_fn(job_type, |job| async move { let args = job.args().to_owned(); let mut args = args.iter(); let diffuculty_level = args @@ -378,7 +378,7 @@ async fn ent_unique_job_bypass_unique_lock() { // let's consume three times from the queue to verify that the first two jobs // have been enqueued for real, while the last one has not. let mut c = WorkerBuilder::default(); - c.register("order", print_job); + c.register_fn("order", print_job); let mut c = c.connect(Some(&url)).await.unwrap(); assert!(c.run_one(0, &[queue_name]).await.unwrap()); @@ -427,7 +427,7 @@ async fn test_tracker_can_send_and_retrieve_job_execution_progress() { { let job_id = job_id.clone(); let url = url.clone(); - c.register("order", move |job| { + c.register_fn("order", move |job| { let job_id = job_id.clone(); let url = url.clone(); Box::pin(async move { @@ -558,8 +558,8 @@ async fn test_batch_of_jobs_can_be_initiated() { let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = WorkerBuilder::default(); - c.register("thumbnail", |_job| async { Ok::<(), io::Error>(()) }); - c.register("clean_up", |_job| async { Ok(()) }); + c.register_fn("thumbnail", |_job| async { Ok::<(), io::Error>(()) }); + c.register_fn("clean_up", |_job| async { Ok(()) }); let mut c = c.connect(Some(&url)).await.unwrap(); let mut t = Client::connect(Some(&url)) .await @@ -695,7 +695,7 @@ async fn test_batches_can_be_nested() { // Set up 'client', 'worker', and 'tracker': let mut p = Client::connect(Some(&url)).await.unwrap(); let mut c = WorkerBuilder::default(); - c.register("jobtype", |_job| async { Ok::<(), io::Error>(()) }); + c.register_fn("jobtype", |_job| async { Ok::<(), io::Error>(()) }); let mut _c = c.connect(Some(&url)).await.unwrap(); let mut t = Client::connect(Some(&url)) .await @@ -796,8 +796,8 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { let mut cl = Client::connect(Some(&url)).await.unwrap(); let mut tr = Client::connect(Some(&url)).await.unwrap(); let mut w = WorkerBuilder::default(); - w.register("order", |_job| async { Ok(()) }); - w.register("order_clean_up", |_job| async { Ok::<(), io::Error>(()) }); + w.register_fn("order", |_job| async { Ok(()) }); + w.register_fn("order_clean_up", |_job| async { Ok::<(), io::Error>(()) }); let mut c = w.connect(Some(&url)).await.unwrap(); let mut jobs = some_jobs( @@ -928,8 +928,8 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { assert_eq!(s.success_callback_state, CallbackState::Pending); let mut c = WorkerBuilder::default(); - c.register(complete_cb_jobtype, |_job| async { Ok(()) }); - c.register(success_cb_jobtype, |_job| async { + c.register_fn(complete_cb_jobtype, |_job| async { Ok(()) }); + c.register_fn(success_cb_jobtype, |_job| async { Err(io::Error::new( io::ErrorKind::Other, "we want this one to fail to test the 'CallbackState' behavior", diff --git a/tests/tls/native_tls.rs b/tests/tls/native_tls.rs index 19263fc5..b159c959 100644 --- a/tests/tls/native_tls.rs +++ b/tests/tls/native_tls.rs @@ -26,7 +26,7 @@ async fn roundtrip_tls() { let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register_runner(local, fixtures::JobHandler::new(tx)); + c.register(local, fixtures::JobHandler::new(tx)); let tls = || async { let connector = TlsConnector::builder() diff --git a/tests/tls/rustls.rs b/tests/tls/rustls.rs index 8885d353..a7fa428b 100644 --- a/tests/tls/rustls.rs +++ b/tests/tls/rustls.rs @@ -28,7 +28,7 @@ async fn roundtrip_tls() { let mut c = WorkerBuilder::default(); c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register_runner(local, fixtures::JobHandler::new(tx)); + c.register(local, fixtures::JobHandler::new(tx)); let tls = || async { let verifier = fixtures::TestServerCertVerifier::new( From 050a28d0422329d4b0db5b4211b1d6ba088e26a9 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 07:39:29 +0500 Subject: [PATCH 113/175] Add to WorkerBuilder::register and ::register_fn docs --- src/worker/builder.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 1cbdc2ef..e737e557 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -94,6 +94,9 @@ impl WorkerBuilder { /// /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler /// function is called with that job as its argument. + /// + /// Note that only one single handler per job kind is supported. Registering another handler + /// for the same job kind will silently override the handler registered previously. pub fn register_fn(&mut self, kind: K, handler: H) -> &mut Self where K: Into, @@ -108,6 +111,9 @@ impl WorkerBuilder { /// /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler /// object is called with that job as its argument. + /// + /// Note that only one single handler per job kind is supported. Registering another handler + /// for the same job kind will silently override the handler registered previously. pub fn register(&mut self, kind: K, runner: H) -> &mut Self where K: Into, From 6644a2f46f08a9a4de23ab3d5bc736558f7dfdc1 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 07:44:30 +0500 Subject: [PATCH 114/175] Re-use WorkerBuilder::connect_with in ::connect --- src/worker/builder.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index e737e557..8bd15d03 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -150,14 +150,11 @@ impl WorkerBuilder { /// /// If `url` is given, but does not specify a port, it defaults to 7419. pub async fn connect( - mut self, + self, url: Option<&str>, ) -> Result, E>, Error> { let url = utils::parse_provided_or_from_env(url)?; let stream = TokioStream::connect(utils::host_from_url(&url)).await?; - self.opts.is_worker = true; - let buffered = BufStream::new(stream); - let client = Client::new(buffered, self.opts).await?; - Ok(Worker::new(client, self.workers_count, self.callbacks).await) + self.connect_with(stream, None).await } } From 6e5121a0c745fd6c2f64b01de847005129ca8992 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 08:18:27 +0500 Subject: [PATCH 115/175] Do not use *Ext as bounds --- src/proto/batch/cmd.rs | 6 +++--- src/proto/batch/handle.rs | 6 +++--- src/proto/batch/status.rs | 4 ++-- src/proto/client/mod.rs | 17 ++++++++--------- src/proto/single/cmd.rs | 20 ++++++++++---------- src/proto/single/ent/cmd.rs | 4 ++-- src/proto/single/mod.rs | 8 +++++--- src/proto/single/resp.rs | 17 +++++++++-------- src/worker/health.rs | 4 ++-- 9 files changed, 44 insertions(+), 42 deletions(-) diff --git a/src/proto/batch/cmd.rs b/src/proto/batch/cmd.rs index ecab54f2..1c1df52f 100644 --- a/src/proto/batch/cmd.rs +++ b/src/proto/batch/cmd.rs @@ -1,10 +1,10 @@ use crate::error::Error; use crate::proto::{single::FaktoryCommand, Batch, BatchId}; -use tokio::io::AsyncWriteExt; +use tokio::io::{AsyncWrite, AsyncWriteExt}; #[async_trait::async_trait] impl FaktoryCommand for Batch { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { w.write_all(b"BATCH NEW ").await?; let r = serde_json::to_vec(self).map_err(Error::Serialization)?; w.write_all(&r).await?; @@ -25,7 +25,7 @@ macro_rules! batch_cmd { where B: AsRef + Sync, { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { w.write_all(b"BATCH ").await?; w.write_all($cmd.as_bytes()).await?; w.write_all(b" ").await?; diff --git a/src/proto/batch/handle.rs b/src/proto/batch/handle.rs index 88dac29e..9b7f6238 100644 --- a/src/proto/batch/handle.rs +++ b/src/proto/batch/handle.rs @@ -1,14 +1,14 @@ use crate::error::Error; use crate::proto::{Batch, BatchId, Client, Job}; -use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::io::{AsyncBufRead, AsyncWrite}; /// Represents a newly started or re-opened batch of jobs. -pub struct BatchHandle<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> { +pub struct BatchHandle<'a, S: AsyncBufRead + AsyncWrite + Unpin + Send> { bid: BatchId, c: &'a mut Client, } -impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> BatchHandle<'a, S> { +impl<'a, S: AsyncBufRead + AsyncWrite + Unpin + Send> BatchHandle<'a, S> { /// ID issued by the Faktory server to this batch. pub fn id(&self) -> &BatchId { &self.bid diff --git a/src/proto/batch/status.rs b/src/proto/batch/status.rs index 5a884f65..b1c66332 100644 --- a/src/proto/batch/status.rs +++ b/src/proto/batch/status.rs @@ -5,7 +5,7 @@ use super::BatchHandle; use crate::error::Error; use crate::proto::{BatchId, Client}; use chrono::{DateTime, Utc}; -use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::io::{AsyncBufRead, AsyncWrite}; // Not documented, but existing de fakto and also mentioned in the official client // https://github.com/contribsys/faktory/blob/main/client/batch.go#L17-L19 @@ -83,7 +83,7 @@ impl<'a> BatchStatus { /// Open the batch for which this `BatchStatus` has been retrieved. /// /// See [`open_batch`](Client::open_batch). - pub async fn open( + pub async fn open( &self, prod: &'a mut Client, ) -> Result>, Error> { diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index f2d3ade6..bdcc6af7 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -10,8 +10,7 @@ use super::{utils, PushBulk}; use crate::error::{self, Error}; use crate::{Job, WorkerId}; use std::collections::HashMap; -use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; -use tokio::io::{AsyncRead, AsyncWrite, BufStream}; +use tokio::io::{AsyncBufRead, AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; mod options; @@ -146,14 +145,14 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// # Ok::<(), faktory::Error>(()) /// }); /// ``` -pub struct Client { +pub struct Client { stream: S, opts: ClientOptions, } impl Client where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send + Reconnect, + S: AsyncBufRead + AsyncWrite + Unpin + Send + Reconnect, { pub(crate) async fn connect_again(&mut self) -> Result { let s = self.stream.reconnect().await?; @@ -168,7 +167,7 @@ where impl Drop for Client where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, + S: AsyncBufRead + AsyncWrite + Unpin + Send, { fn drop(&mut self) { tokio::task::block_in_place(|| { @@ -223,7 +222,7 @@ impl Client> { impl Client where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, + S: AsyncBufRead + AsyncWrite + Unpin + Send, { async fn init(&mut self) -> Result<(), Error> { let hi = single::read_hi(&mut self.stream).await?; @@ -317,7 +316,7 @@ where impl Client where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send, + S: AsyncBufRead + AsyncWrite + Unpin + Send, { /// Enqueue the given job on the Faktory server. /// @@ -395,9 +394,9 @@ where pub struct ReadToken<'a, S>(pub(crate) &'a mut Client) where - S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send; + S: AsyncBufRead + AsyncWrite + Unpin + Send; -impl<'a, S: AsyncBufReadExt + AsyncWriteExt + Unpin + Send> ReadToken<'a, S> { +impl<'a, S: AsyncBufRead + AsyncWrite + Unpin + Send> ReadToken<'a, S> { pub(crate) async fn read_ok(self) -> Result<(), Error> { single::read_ok(&mut self.0.stream).await } diff --git a/src/proto/single/cmd.rs b/src/proto/single/cmd.rs index cc1b7917..54fb7115 100644 --- a/src/proto/single/cmd.rs +++ b/src/proto/single/cmd.rs @@ -1,18 +1,18 @@ use crate::error::Error; use crate::proto::{Job, JobId, WorkerId}; use std::error::Error as StdError; -use tokio::io::AsyncWriteExt; +use tokio::io::{AsyncWrite, AsyncWriteExt}; #[async_trait::async_trait] pub trait FaktoryCommand { - async fn issue(&self, w: &mut W) -> Result<(), Error>; + async fn issue(&self, w: &mut W) -> Result<(), Error>; } macro_rules! self_to_cmd { ($struct:ident, $cmd:expr) => { #[async_trait::async_trait] impl FaktoryCommand for $struct { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { w.write_all($cmd.as_bytes()).await?; w.write_all(b" ").await?; let r = serde_json::to_vec(self).map_err(Error::Serialization)?; @@ -27,7 +27,7 @@ macro_rules! self_to_cmd { /// followed by space separated queue names. async fn write_queues(w: &mut W, queues: &[S]) -> Result<(), Error> where - W: AsyncWriteExt + Unpin + Send, + W: AsyncWrite + Unpin + Send, S: AsRef, { for q in queues { @@ -44,7 +44,7 @@ pub(crate) struct Info; #[async_trait::async_trait] impl FaktoryCommand for Info { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { Ok(w.write_all(b"INFO\r\n").await?) } } @@ -140,7 +140,7 @@ pub(crate) struct End; #[async_trait::async_trait] impl FaktoryCommand for End { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { Ok(w.write_all(b"END\r\n").await?) } } @@ -159,7 +159,7 @@ impl<'a, Q> FaktoryCommand for Fetch<'a, Q> where Q: AsRef + Sync, { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { w.write_all(b"FETCH").await?; write_queues(w, self.queues).await?; Ok(w.write_all(b"\r\n").await?) @@ -246,7 +246,7 @@ impl From for Push { #[async_trait::async_trait] impl FaktoryCommand for Push { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { w.write_all(b"PUSH ").await?; let r = serde_json::to_vec(&**self).map_err(Error::Serialization)?; w.write_all(&r).await?; @@ -266,7 +266,7 @@ impl From> for PushBulk { #[async_trait::async_trait] impl FaktoryCommand for PushBulk { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { w.write_all(b"PUSHB ").await?; let r = serde_json::to_vec(&self.0).map_err(Error::Serialization)?; w.write_all(&r).await?; @@ -294,7 +294,7 @@ impl FaktoryCommand for QueueControl<'_, Q> where Q: AsRef + Sync, { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { let command = match self.action { QueueAction::Pause => b"QUEUE PAUSE".as_ref(), QueueAction::Resume => b"QUEUE RESUME".as_ref(), diff --git a/src/proto/single/ent/cmd.rs b/src/proto/single/ent/cmd.rs index acb38c8f..43881e44 100644 --- a/src/proto/single/ent/cmd.rs +++ b/src/proto/single/ent/cmd.rs @@ -1,7 +1,7 @@ use super::ProgressUpdate; use crate::error::Error; use crate::proto::{single::FaktoryCommand, JobId}; -use tokio::io::AsyncWriteExt; +use tokio::io::{AsyncWrite, AsyncWriteExt}; #[derive(Debug, Clone)] pub enum Track { @@ -11,7 +11,7 @@ pub enum Track { #[async_trait::async_trait] impl FaktoryCommand for Track { - async fn issue(&self, w: &mut W) -> Result<(), Error> { + async fn issue(&self, w: &mut W) -> Result<(), Error> { match self { Self::Set(upd) => { w.write_all(b"TRACK SET ").await?; diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index fce78470..a563e7ac 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -2,7 +2,7 @@ use crate::Error; use chrono::{DateTime, Utc}; use derive_builder::Builder; use std::collections::HashMap; -use tokio::io::{AsyncBufRead, AsyncWriteExt}; +use tokio::io::{AsyncBufRead, AsyncWrite}; mod cmd; mod id; @@ -260,7 +260,9 @@ impl Job { &self.failure } } -pub async fn write_command( + +use tokio::io::AsyncWriteExt; +pub async fn write_command( w: &mut W, command: &C, ) -> Result<(), Error> { @@ -269,7 +271,7 @@ pub async fn write_command( } pub async fn write_command_and_await_ok< - S: AsyncBufRead + AsyncWriteExt + Unpin + Send, + S: AsyncBufRead + AsyncWrite + Unpin + Send, C: FaktoryCommand, >( stream: &mut S, diff --git a/src/proto/single/resp.rs b/src/proto/single/resp.rs index bd0a07b9..5d4ede59 100644 --- a/src/proto/single/resp.rs +++ b/src/proto/single/resp.rs @@ -2,7 +2,7 @@ use crate::ent::BatchId; use crate::error::{self, Error}; -use tokio::io::{AsyncBufReadExt, AsyncReadExt}; +use tokio::io::AsyncBufRead; pub fn bad(expected: &'static str, got: &RawResponse) -> error::Protocol { let stringy = match *got { @@ -31,7 +31,7 @@ pub fn bad(expected: &'static str, got: &RawResponse) -> error::Protocol { // ---------------------------------------------- -pub async fn read_json( +pub async fn read_json( r: R, ) -> Result, Error> { let rr = read(r).await?; @@ -65,7 +65,7 @@ pub async fn read_json(r: R) -> Result { +pub async fn read_bid(r: R) -> Result { match read(r).await? { RawResponse::Blob(ref b) if b.is_empty() => Err(error::Protocol::BadType { expected: "non-empty blob representation of batch id", @@ -95,7 +95,7 @@ pub struct Hi { pub salt: Option, } -pub async fn read_hi(r: R) -> Result { +pub async fn read_hi(r: R) -> Result { let rr = read(r).await?; if let RawResponse::String(ref s) = rr { if let Some(s) = s.strip_prefix("HI ") { @@ -107,7 +107,7 @@ pub async fn read_hi(r: R) -> Result { // ---------------------------------------------- -pub async fn read_ok(r: R) -> Result<(), Error> { +pub async fn read_ok(r: R) -> Result<(), Error> { let rr = read(r).await?; if let RawResponse::String(ref s) = rr { if s == "OK" { @@ -132,9 +132,10 @@ pub enum RawResponse { Null, } +use tokio::io::{AsyncBufReadExt, AsyncReadExt}; async fn read(mut r: R) -> Result where - R: AsyncReadExt + AsyncBufReadExt + Unpin, + R: AsyncBufRead + Unpin, { let mut cmdbuf = [0u8; 1]; r.read_exact(&mut cmdbuf).await?; @@ -260,9 +261,9 @@ mod test { use crate::error::{self, Error}; use serde_json::{Map, Value}; use std::io::Cursor; - use tokio::io::AsyncBufReadExt; + use tokio::io::AsyncBufRead; - async fn read_json(c: C) -> Result, Error> { + async fn read_json(c: C) -> Result, Error> { super::read_json(c).await } diff --git a/src/worker/health.rs b/src/worker/health.rs index a9f98da1..3ffcd0b0 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -5,11 +5,11 @@ use std::{ sync::{atomic, Arc}, time, }; -use tokio::io::{AsyncBufReadExt, AsyncWriteExt}; +use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::time::sleep as tokio_sleep; impl< - S: AsyncBufReadExt + AsyncWriteExt + Reconnect + Send + Unpin + 'static, + S: AsyncBufRead + AsyncWrite + Reconnect + Send + Unpin + 'static, E: StdError + 'static + Send, > Worker { From 04906376bfbee892a695c2d4e9c9e839e80ff685 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 08:22:13 +0500 Subject: [PATCH 116/175] Clean up worker::health module --- src/worker/health.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/worker/health.rs b/src/worker/health.rs index 3ffcd0b0..8e6f88da 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -8,14 +8,14 @@ use std::{ use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::time::sleep as tokio_sleep; -impl< - S: AsyncBufRead + AsyncWrite + Reconnect + Send + Unpin + 'static, - E: StdError + 'static + Send, - > Worker +impl Worker +where + S: AsyncBufRead + AsyncWrite + Reconnect + Send + Unpin + 'static, + E: StdError + 'static + Send, { pub(crate) async fn listen_for_heartbeats( &mut self, - statuses: &Vec>, + statuses: &[Arc], ) -> Result { let mut target = STATUS_RUNNING; From dfda0dbf7aa97a9cf2b805b3016702d7e136c32f Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 09:09:02 +0500 Subject: [PATCH 117/175] Rm excessive bounds --- src/proto/batch/handle.rs | 16 ++++++++++------ src/proto/client/mod.rs | 4 ++-- src/worker/mod.rs | 4 ++-- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/proto/batch/handle.rs b/src/proto/batch/handle.rs index 9b7f6238..5015510d 100644 --- a/src/proto/batch/handle.rs +++ b/src/proto/batch/handle.rs @@ -3,21 +3,25 @@ use crate::proto::{Batch, BatchId, Client, Job}; use tokio::io::{AsyncBufRead, AsyncWrite}; /// Represents a newly started or re-opened batch of jobs. -pub struct BatchHandle<'a, S: AsyncBufRead + AsyncWrite + Unpin + Send> { +pub struct BatchHandle<'a, S: AsyncWrite + Unpin + Send> { bid: BatchId, c: &'a mut Client, } -impl<'a, S: AsyncBufRead + AsyncWrite + Unpin + Send> BatchHandle<'a, S> { +impl<'a, S: AsyncWrite + Unpin + Send> BatchHandle<'a, S> { + pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { + BatchHandle { bid, c } + } +} + +impl<'a, S: AsyncWrite + Unpin + Send> BatchHandle<'a, S> { /// ID issued by the Faktory server to this batch. pub fn id(&self) -> &BatchId { &self.bid } +} - pub(crate) fn new(bid: BatchId, c: &mut Client) -> BatchHandle<'_, S> { - BatchHandle { bid, c } - } - +impl<'a, S: AsyncBufRead + AsyncWrite + Unpin + Send> BatchHandle<'a, S> { /// Add the given job to the batch. /// /// Should the submitted job - for whatever reason - already have a `bid` key present in its custom hash, diff --git a/src/proto/client/mod.rs b/src/proto/client/mod.rs index bdcc6af7..9ba6477e 100644 --- a/src/proto/client/mod.rs +++ b/src/proto/client/mod.rs @@ -145,7 +145,7 @@ fn check_protocols_match(ver: usize) -> Result<(), Error> { /// # Ok::<(), faktory::Error>(()) /// }); /// ``` -pub struct Client { +pub struct Client { stream: S, opts: ClientOptions, } @@ -167,7 +167,7 @@ where impl Drop for Client where - S: AsyncBufRead + AsyncWrite + Unpin + Send, + S: AsyncWrite + Unpin + Send, { fn drop(&mut self) { tokio::task::block_in_place(|| { diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 2309d62e..aaa20175 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -136,7 +136,7 @@ type CallbacksRegistry = FnvHashMap>; /// You can also register anything that implements [`JobRunner`] to handle jobs /// with [`register`](WorkerBuilder::register). /// -pub struct Worker { +pub struct Worker { c: Client, worker_states: Arc, callbacks: Arc>, @@ -149,7 +149,7 @@ impl Worker { } } -impl Worker { +impl Worker { async fn new(c: Client, workers_count: usize, callbacks: CallbacksRegistry) -> Self { Worker { c, From 56ccfb68a5e5b9928ba40c490c9e47f626a5d650 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 09:54:35 +0500 Subject: [PATCH 118/175] Store STATUS_TERMINATING in Fakotry signalled so --- src/worker/health.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/worker/health.rs b/src/worker/health.rs index 8e6f88da..849dd633 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -13,6 +13,15 @@ where S: AsyncBufRead + AsyncWrite + Reconnect + Send + Unpin + 'static, E: StdError + 'static + Send, { + /// Send beats to Fakotry and quiet/terminate workers if signalled so. + /// + /// Some core details: + /// - beats should be sent to Faktory at least every 15 seconds; + /// - a worker's lifecycle is "running -> quiet -> terminate"; + /// - STATUS_QUIET means the worker should not consume any new jobs, + /// but should _continue_ processing its current job (if any); + /// + /// Ref: https://github.com/contribsys/faktory/blob/main/server/workers.go#L21 pub(crate) async fn listen_for_heartbeats( &mut self, statuses: &[Arc], @@ -58,7 +67,7 @@ where // tell the workers to terminate // *and* fail the current job and immediately return for s in statuses { - s.store(STATUS_QUIET, atomic::Ordering::SeqCst); + s.store(STATUS_TERMINATING, atomic::Ordering::SeqCst); } break Ok(true); } From 44b8cfb9f6b7e96baf0fe55139e88b96b93a7d2a Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 27 Apr 2024 09:55:06 +0500 Subject: [PATCH 119/175] Store STATUS_TERMINATING in Fakotry signalled so --- src/worker/health.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/worker/health.rs b/src/worker/health.rs index 849dd633..993dc904 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -14,13 +14,13 @@ where E: StdError + 'static + Send, { /// Send beats to Fakotry and quiet/terminate workers if signalled so. - /// + /// /// Some core details: /// - beats should be sent to Faktory at least every 15 seconds; /// - a worker's lifecycle is "running -> quiet -> terminate"; /// - STATUS_QUIET means the worker should not consume any new jobs, /// but should _continue_ processing its current job (if any); - /// + /// /// Ref: https://github.com/contribsys/faktory/blob/main/server/workers.go#L21 pub(crate) async fn listen_for_heartbeats( &mut self, From f07d9329ef4c4e882faf5f782e84c701eb74da0a Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 28 Apr 2024 15:36:46 +0500 Subject: [PATCH 120/175] Add PartialEq to proto::single::id module newtypes --- src/error.rs | 2 +- src/proto/single/id.rs | 11 ++++++++--- src/proto/single/mod.rs | 5 ++--- src/worker/runner.rs | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/error.rs b/src/error.rs index 13043243..fccdd0aa 100644 --- a/src/error.rs +++ b/src/error.rs @@ -171,7 +171,7 @@ pub enum TlsStream { #[error("underlying tls stream")] Native(#[source] tokio_native_tls::native_tls::Error), - /// Error in the underlying rutsls powered stream. + /// Error in the underlying rustls powered stream. #[cfg(feature = "rustls")] #[cfg_attr(docsrs, doc(cfg(feature = "rustls")))] #[error("underlying tls stream")] diff --git a/src/proto/single/id.rs b/src/proto/single/id.rs index 9add5eb4..f1b6a844 100644 --- a/src/proto/single/id.rs +++ b/src/proto/single/id.rs @@ -1,5 +1,4 @@ use super::utils; -use std::fmt::Display; use std::ops::Deref; macro_rules! string_wrapper_impls { @@ -8,9 +7,9 @@ macro_rules! string_wrapper_impls { /// Create a new entity identifier. pub fn new(inner: S) -> Self where - S: AsRef + Clone + Display, + S: Into, { - Self(inner.to_string()) + Self(inner.into()) } } @@ -32,6 +31,12 @@ macro_rules! string_wrapper_impls { &self } } + + impl PartialEq for $new_type { + fn eq(&self, other: &str) -> bool { + self.deref().eq(other) + } + } }; } diff --git a/src/proto/single/mod.rs b/src/proto/single/mod.rs index a563e7ac..9e3905dc 100644 --- a/src/proto/single/mod.rs +++ b/src/proto/single/mod.rs @@ -2,7 +2,7 @@ use crate::Error; use chrono::{DateTime, Utc}; use derive_builder::Builder; use std::collections::HashMap; -use tokio::io::{AsyncBufRead, AsyncWrite}; +use tokio::io::{AsyncBufRead, AsyncWrite, AsyncWriteExt}; mod cmd; mod id; @@ -261,7 +261,6 @@ impl Job { } } -use tokio::io::AsyncWriteExt; pub async fn write_command( w: &mut W, command: &C, @@ -291,7 +290,7 @@ mod test { let job_args = vec!["ISBN-13:9781718501850"]; let job = JobBuilder::new(job_kind).args(job_args.clone()).build(); - assert!(job.jid != JobId::new("")); + assert!(&job.jid != ""); assert!(job.queue == JOB_DEFAULT_QUEUE.to_string()); assert_eq!(job.kind, job_kind); assert_eq!(job.args, job_args); diff --git a/src/worker/runner.rs b/src/worker/runner.rs index ba2e1872..47c13e49 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -89,7 +89,7 @@ where } } -/// A wrapper for the userland's handler. +/// A "transparent" wrapper for a handler. /// /// The `Closure` newtype is introduced to avoid having to box a job handler: /// we can now use `Closure(handler)` instead of `Box::new(handler)` and make @@ -98,7 +98,7 @@ where /// The `repr(transparent)` macro is to guarantee that this single-field struct /// and the wrapped handler have the same layout and so it is safe to operate on /// the in-memory representations of _the_ handler (submitted to us -/// from the userland) and its enclosed (by us) self. +/// from the user code) and its enclosed (by us) self. /// /// Ref: https://github.com/jonhoo/faktory-rs/pull/51 #[repr(transparent)] From cdb8caf532f9de5908ac2b1d2f1b1dc5169fa63c Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 28 Apr 2024 15:46:45 +0500 Subject: [PATCH 121/175] Do not require static string in tls::rustls --- src/tls/rustls.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/tls/rustls.rs b/src/tls/rustls.rs index a08299a4..53c85ed6 100644 --- a/src/tls/rustls.rs +++ b/src/tls/rustls.rs @@ -32,7 +32,7 @@ use tokio_rustls::TlsConnector; #[pin_project::pin_project] pub struct TlsStream { connector: TlsConnector, - hostname: &'static str, + hostname: String, #[pin] stream: RustlsStream, } @@ -82,7 +82,7 @@ impl TlsStream { }?; let host_and_port = utils::host_from_url(&url); let tcp_stream = TokioTcpStream::connect(&host_and_port).await?; - let host = url.host_str().unwrap().to_string().leak(); + let host = url.host_str().unwrap().to_string(); Ok(TlsStream::new(tcp_stream, connector, host).await?) } } @@ -95,7 +95,7 @@ where /// /// Internally creates a `ClientConfig` with an empty root certificates store and no client /// authentication. Use [`new`](TlsStream::new) for a customized `TlsConnector`. - pub async fn default(stream: S, hostname: &'static str) -> io::Result { + pub async fn default(stream: S, hostname: String) -> io::Result { let conf = ClientConfig::builder() .with_root_certificates(RootCertStore::empty()) .with_no_client_auth(); @@ -104,12 +104,11 @@ where } /// Create a new TLS connection on an existing stream with a non-default TLS configuration. - pub async fn new( - stream: S, - connector: TlsConnector, - hostname: &'static str, - ) -> io::Result { - let server_name = hostname.try_into().expect("a valid DNS name or IP address"); + pub async fn new(stream: S, connector: TlsConnector, hostname: String) -> io::Result { + let server_name = hostname + .clone() + .try_into() + .expect("a valid DNS name or IP address"); let tls_stream = connector .connect(server_name, stream) .await @@ -129,7 +128,7 @@ where { async fn reconnect(&mut self) -> io::Result { let stream = self.stream.get_mut().0.reconnect().await?; - TlsStream::new(stream, self.connector.clone(), self.hostname).await + TlsStream::new(stream, self.connector.clone(), self.hostname.clone()).await } } From fd231d1c2c70ba2d253c9ffc8c401bda2712c047 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 28 Apr 2024 15:52:28 +0500 Subject: [PATCH 122/175] Use permalink in Worker::listen_for_heartbeats docs --- src/worker/health.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/health.rs b/src/worker/health.rs index 993dc904..053555ed 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -21,7 +21,7 @@ where /// - STATUS_QUIET means the worker should not consume any new jobs, /// but should _continue_ processing its current job (if any); /// - /// Ref: https://github.com/contribsys/faktory/blob/main/server/workers.go#L21 + /// See more details [here](https://github.com/contribsys/faktory/blob/b4a93227a3323ab4b1365b0c37c2fac4f9588cc8/server/workers.go#L13-L49). pub(crate) async fn listen_for_heartbeats( &mut self, statuses: &[Arc], From 15d171116ebda632a4ab61992fc672f06af19b6a Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 28 Apr 2024 17:27:02 +0500 Subject: [PATCH 123/175] Make WorkerBuilder return Self --- src/bin/loadtest.rs | 27 +++--- src/lib.rs | 13 +-- src/worker/builder.rs | 17 ++-- src/worker/mod.rs | 22 +++-- src/worker/runner.rs | 12 ++- tests/consumer.rs | 137 ++++++++++++++------------ tests/real/community.rs | 129 ++++++++++++++----------- tests/real/enterprise.rs | 203 +++++++++++++++++++++------------------ tests/tls/native_tls.rs | 26 ++--- tests/tls/rustls.rs | 26 ++--- 10 files changed, 335 insertions(+), 277 deletions(-) diff --git a/src/bin/loadtest.rs b/src/bin/loadtest.rs index aa1bec09..60d17d67 100644 --- a/src/bin/loadtest.rs +++ b/src/bin/loadtest.rs @@ -58,19 +58,20 @@ async fn main() { set.spawn(async move { // make producer and consumer let mut p = Client::connect(None).await.unwrap(); - let mut c = WorkerBuilder::default(); - c.register_fn("SomeJob", |_| { - Box::pin(async move { - let mut rng = rand::thread_rng(); - if rng.gen_bool(0.01) { - Err(io::Error::new(io::ErrorKind::Other, "worker closed")) - } else { - Ok(()) - } + let mut worker = WorkerBuilder::default() + .register_fn("SomeJob", |_| { + Box::pin(async move { + let mut rng = rand::thread_rng(); + if rng.gen_bool(0.01) { + Err(io::Error::new(io::ErrorKind::Other, "worker closed")) + } else { + Ok(()) + } + }) }) - }); - let mut c = c.connect(None).await.unwrap(); - + .connect(None) + .await + .unwrap(); let mut rng = rand::rngs::OsRng; let mut random_queues = Vec::from(QUEUES); random_queues.shuffle(&mut rng); @@ -89,7 +90,7 @@ async fn main() { } } else { // pop - c.run_one(0, &random_queues[..]).await?; + worker.run_one(0, &random_queues[..]).await?; if popped.fetch_add(1, atomic::Ordering::SeqCst) >= jobs { return Ok(idx); } diff --git a/src/lib.rs b/src/lib.rs index 57a4a0be..6f702741 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -50,12 +50,13 @@ //! # tokio_test::block_on(async { //! use faktory::WorkerBuilder; //! use std::io; -//! let mut w = WorkerBuilder::default(); -//! w.register_fn("foobar", |job| async move { -//! println!("{:?}", job); -//! Ok::<(), io::Error>(()) -//! }); -//! let mut w = w.connect(None).await.unwrap(); +//! let mut w = WorkerBuilder::default() +//! .register_fn("foobar", |job| async move { +//! println!("{:?}", job); +//! Ok::<(), io::Error>(()) +//! }) +//! .connect(None).await.unwrap(); +//! //! if let Err(e) = w.run(&["default"]).await { //! println!("worker failed: {}", e); //! } diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 8bd15d03..f5768216 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -40,7 +40,7 @@ impl WorkerBuilder { /// Set the hostname to use for this worker. /// /// Defaults to the machine's hostname as reported by the operating system. - pub fn hostname(&mut self, hn: String) -> &mut Self { + pub fn hostname(mut self, hn: String) -> Self { self.opts.hostname = Some(hn); self } @@ -48,7 +48,7 @@ impl WorkerBuilder { /// Set a unique identifier for this worker. /// /// Defaults to a randomly generated 32-char ASCII string. - pub fn wid(&mut self, wid: WorkerId) -> &mut Self { + pub fn wid(mut self, wid: WorkerId) -> Self { self.opts.wid = Some(wid); self } @@ -60,7 +60,7 @@ impl WorkerBuilder { /// Note that calling this overrides the labels set previously. /// /// If you need to extend the labels already set, use [`WorkerBuilder::add_to_labels`] instead. - pub fn labels(&mut self, labels: I) -> &mut Self + pub fn labels(mut self, labels: I) -> Self where I: IntoIterator, { @@ -74,7 +74,7 @@ impl WorkerBuilder { /// if no labels have been explicitly set before - to the default `"rust"` label. /// /// If you need to override the labels set previously, use [`WorkerBuilder::labels`] instead. - pub fn add_to_labels(&mut self, labels: I) -> &mut Self + pub fn add_to_labels(mut self, labels: I) -> Self where I: IntoIterator, { @@ -85,7 +85,7 @@ impl WorkerBuilder { /// Set the number of workers to use `run` and `run_to_completion`. /// /// Defaults to 1. - pub fn workers(&mut self, w: usize) -> &mut Self { + pub fn workers(mut self, w: usize) -> Self { self.workers_count = w; self } @@ -97,14 +97,13 @@ impl WorkerBuilder { /// /// Note that only one single handler per job kind is supported. Registering another handler /// for the same job kind will silently override the handler registered previously. - pub fn register_fn(&mut self, kind: K, handler: H) -> &mut Self + pub fn register_fn(self, kind: K, handler: H) -> Self where K: Into, H: Fn(Job) -> Fut + Send + Sync + 'static, Fut: Future> + Send, { - self.register(kind, Closure(handler)); - self + self.register(kind, Closure(handler)) } /// Register a handler for the given job type (`kind`). @@ -114,7 +113,7 @@ impl WorkerBuilder { /// /// Note that only one single handler per job kind is supported. Registering another handler /// for the same job kind will silently override the handler registered previously. - pub fn register(&mut self, kind: K, runner: H) -> &mut Self + pub fn register(mut self, kind: K, runner: H) -> Self where K: Into, H: JobRunner + 'static, diff --git a/src/worker/mod.rs b/src/worker/mod.rs index aaa20175..ba93c449 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -110,11 +110,12 @@ type CallbacksRegistry = FnvHashMap>; /// Ok(()) /// } /// -/// let mut w = WorkerBuilder::default(); +/// let mut w = WorkerBuilder::default() +/// .register_fn("foo", process_job) +/// .connect(None) +/// .await +/// .unwrap(); /// -/// w.register_fn("foo", process_job); -/// -/// let mut w = w.connect(None).await.unwrap(); /// if let Err(e) = w.run(&["default"]).await { /// println!("worker failed: {}", e); /// } @@ -124,12 +125,17 @@ type CallbacksRegistry = FnvHashMap>; /// Handler can be inlined. /// /// ```no_run +/// # tokio_test::block_on(async { /// # use faktory::WorkerBuilder; /// # use std::io; -/// let mut w = WorkerBuilder::default(); -/// w.register_fn("bar", |job| async move { -/// println!("{:?}", job); -/// Ok::<(), io::Error>(()) +/// let _w = WorkerBuilder::default() +/// .register_fn("bar", |job| async move { +/// println!("{:?}", job); +/// Ok::<(), io::Error>(()) +/// }) +/// .connect(None) +/// .await +/// .unwrap(); /// }); /// ``` /// diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 47c13e49..8d29c289 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -31,13 +31,17 @@ use std::future::Future; /// Ok(()) /// } /// } -/// -/// let mut w = WorkerBuilder::default(); +/// /// let handler = MyHandler { /// config: "bar".to_string(), /// }; -/// w.register("foo", handler); -/// let mut w = w.connect(None).await.unwrap(); +/// +/// let mut w = WorkerBuilder::default() +/// .register("foo", handler) +/// .connect(None) +/// .await +/// .unwrap(); +/// /// if let Err(e) = w.run(&["default"]).await { /// println!("worker failed: {}", e); /// } diff --git a/tests/consumer.rs b/tests/consumer.rs index b6ef494d..5fed5a54 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -63,8 +63,8 @@ use tokio::{spawn, time::sleep}; #[tokio::test(flavor = "multi_thread")] async fn hello() { let mut s = mock::Stream::default(); - let mut c: WorkerBuilder = WorkerBuilder::default(); - c.hostname("host".to_string()) + let w: Worker<_, io::Error> = WorkerBuilder::default() + .hostname("host".to_string()) .wid(WorkerId::new("wid")) .labels([ "will".to_string(), @@ -73,9 +73,11 @@ async fn hello() { ]) .labels(["foo".to_string(), "bar".to_string()]) .add_to_labels(["will".to_string()]) - .add_to_labels(["be".to_string(), "added".to_string()]); - c.register_fn("never_called", |_j: Job| async move { unreachable!() }); - let c = c.connect_with(s.clone(), None).await.unwrap(); + .add_to_labels(["be".to_string(), "added".to_string()]) + .register_fn("never_called", |_j: Job| async move { unreachable!() }) + .connect_with(s.clone(), None) + .await + .unwrap(); let written = s.pop_bytes_written(0); assert!(written.starts_with(b"HELLO {")); let written: serde_json::Value = serde_json::from_slice(&written[b"HELLO ".len()..]).unwrap(); @@ -90,7 +92,7 @@ async fn hello() { let labels = written["labels"].as_array().unwrap(); assert_eq!(labels, &["foo", "bar", "will", "be", "added"]); - drop(c); + drop(w); let written = s.pop_bytes_written(0); assert_eq!(written, b"END\r\n"); } @@ -98,10 +100,8 @@ async fn hello() { #[tokio::test(flavor = "multi_thread")] async fn hello_pwd() { let mut s = mock::Stream::with_salt(1545, "55104dc76695721d"); - - let mut c: WorkerBuilder = WorkerBuilder::default(); - c.register_fn("never_called", |_j: Job| async move { unreachable!() }); - let c = c + let w: Worker<_, io::Error> = WorkerBuilder::default() + .register_fn("never_called", |_j: Job| async move { unreachable!() }) .connect_with(s.clone(), Some("foobar".to_string())) .await .unwrap(); @@ -113,19 +113,20 @@ async fn hello_pwd() { written.get("pwdhash").and_then(|h| h.as_str()), Some("6d877f8e5544b1f2598768f817413ab8a357afffa924dedae99eb91472d4ec30") ); - - drop(c); + drop(w); } #[tokio::test(flavor = "multi_thread")] async fn dequeue() { let mut s = mock::Stream::default(); - let mut c = WorkerBuilder::default(); - c.register_fn("foobar", |job: Job| async move { - assert_eq!(job.args(), &["z"]); - Ok::<(), io::Error>(()) - }); - let mut c = c.connect_with(s.clone(), None).await.unwrap(); + let mut w = WorkerBuilder::default() + .register_fn("foobar", |job: Job| async move { + assert_eq!(job.args(), &["z"]); + Ok::<(), io::Error>(()) + }) + .connect_with(s.clone(), None) + .await + .unwrap(); s.ignore(0); s.push_bytes_to_read( @@ -143,7 +144,7 @@ async fn dequeue() { }\r\n", ); s.ok(0); // for the ACK - if let Err(e) = c.run_one(0, &["default"]).await { + if let Err(e) = w.run_one(0, &["default"]).await { println!("{:?}", e); unreachable!(); } @@ -159,12 +160,14 @@ async fn dequeue() { #[tokio::test(flavor = "multi_thread")] async fn dequeue_first_empty() { let mut s = mock::Stream::default(); - let mut c = WorkerBuilder::default(); - c.register_fn("foobar", |job: Job| async move { - assert_eq!(job.args(), &["z"]); - Ok::<(), io::Error>(()) - }); - let mut c = c.connect_with(s.clone(), None).await.unwrap(); + let mut w = WorkerBuilder::default() + .register_fn("foobar", |job: Job| async move { + assert_eq!(job.args(), &["z"]); + Ok::<(), io::Error>(()) + }) + .connect_with(s.clone(), None) + .await + .unwrap(); s.ignore(0); s.push_bytes_to_read( @@ -184,7 +187,7 @@ async fn dequeue_first_empty() { s.ok(0); // for the ACK // run once, shouldn't do anything - match c.run_one(0, &["default"]).await { + match w.run_one(0, &["default"]).await { Ok(did_work) => assert!(!did_work), Err(e) => { println!("{:?}", e); @@ -192,7 +195,7 @@ async fn dequeue_first_empty() { } } // run again, this time doing the job - match c.run_one(0, &["default"]).await { + match w.run_one(0, &["default"]).await { Ok(did_work) => assert!(did_work), Err(e) => { println!("{:?}", e); @@ -214,14 +217,16 @@ async fn dequeue_first_empty() { #[tokio::test(flavor = "multi_thread")] async fn well_behaved() { let mut s = mock::Stream::new(2); // main plus worker - let mut c = WorkerBuilder::default(); - c.wid(WorkerId::new("wid")); - c.register_fn("foobar", |_| async move { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - sleep(Duration::from_secs(7)).await; - Ok::<(), io::Error>(()) - }); - let mut c = c.connect_with(s.clone(), None).await.unwrap(); + let mut w = WorkerBuilder::default() + .wid(WorkerId::new("wid")) + .register_fn("foobar", |_| async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) + }) + .connect_with(s.clone(), None) + .await + .unwrap(); s.ignore(0); // push a job that'll take a while to run @@ -240,7 +245,7 @@ async fn well_behaved() { }\r\n", ); - let jh = spawn(async move { c.run(&["default"]).await }); + let jh = spawn(async move { w.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -279,14 +284,16 @@ async fn well_behaved() { #[tokio::test(flavor = "multi_thread")] async fn no_first_job() { let mut s = mock::Stream::new(2); // main plus worker - let mut c = WorkerBuilder::default(); - c.wid(WorkerId::new("wid")); - c.register_fn("foobar", |_| async move { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - sleep(Duration::from_secs(7)).await; - Ok::<(), io::Error>(()) - }); - let mut c = c.connect_with(s.clone(), None).await.unwrap(); + let mut w = WorkerBuilder::default() + .wid(WorkerId::new("wid")) + .register_fn("foobar", |_| async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) + }) + .connect_with(s.clone(), None) + .await + .unwrap(); s.ignore(0); // push a job that'll take a while to run @@ -305,7 +312,7 @@ async fn no_first_job() { }\r\n", ); - let jh = spawn(async move { c.run(&["default"]).await }); + let jh = spawn(async move { w.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -345,15 +352,17 @@ async fn no_first_job() { #[tokio::test(flavor = "multi_thread")] async fn well_behaved_many() { let mut s = mock::Stream::new(3); // main plus 2 workers - let mut w = WorkerBuilder::default(); - w.workers(2); - w.wid(WorkerId::new("wid")); - w.register_fn("foobar", |_| async move { - // NOTE: this time needs to be so that it lands between the first heartbeat and the second - sleep(Duration::from_secs(7)).await; - Ok::<(), io::Error>(()) - }); - let mut w = w.connect_with(s.clone(), None).await.unwrap(); + let mut w = WorkerBuilder::default() + .workers(2) + .wid(WorkerId::new("wid")) + .register_fn("foobar", |_| async move { + // NOTE: this time needs to be so that it lands between the first heartbeat and the second + sleep(Duration::from_secs(7)).await; + Ok::<(), io::Error>(()) + }) + .connect_with(s.clone(), None) + .await + .unwrap(); s.ignore(0); // push two jobs that'll take a while to run @@ -426,16 +435,18 @@ async fn terminate() { let mut s = mock::Stream::new(2); // main plus worker // prepare a worker with only never (!) returning handler - let mut w: WorkerBuilder = WorkerBuilder::default(); - w.hostname("machine".into()); - w.wid(WorkerId::new("wid")); - w.register_fn("foobar", |_| async move { - loop { - sleep(Duration::from_secs(5)).await; - } - }); + let mut w: Worker<_, io::Error> = WorkerBuilder::default() + .hostname("machine".into()) + .wid(WorkerId::new("wid")) + .register_fn("foobar", |_| async move { + loop { + sleep(Duration::from_secs(5)).await; + } + }) + .connect_with(s.clone(), None) + .await + .unwrap(); - let mut w = w.connect_with(s.clone(), None).await.unwrap(); // what now is being ignored on `mine` channel are these written bytes (pid will vary): // b"HELLO {\"hostname\":\"machine\",\"wid\":\"wid\",\"pid\":7332,\"labels\":[\"rust\"],\"v\":2}\r\n" // this was the HELLO from main (coordinating) worker diff --git a/tests/real/community.rs b/tests/real/community.rs index b2157b07..44100cb4 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -13,12 +13,14 @@ async fn hello_client() { #[tokio::test(flavor = "multi_thread")] async fn hello_worker() { skip_check!(); - let mut c = WorkerBuilder::::default(); - c.hostname("tester".to_string()) - .labels(vec!["foo".to_string(), "bar".to_string()]); - c.register_fn("never_called", |_| async move { unreachable!() }); - let c = c.connect(None).await.unwrap(); - drop(c); + let w = WorkerBuilder::::default() + .hostname("tester".to_string()) + .labels(vec!["foo".to_string(), "bar".to_string()]) + .register_fn("never_called", |_| async move { unreachable!() }) + .connect(None) + .await + .unwrap(); + drop(w); } #[tokio::test(flavor = "multi_thread")] @@ -35,8 +37,7 @@ async fn roundtrip() { let local = "roundtrip"; let jid = JobId::new("x-job-id-0123456782"); - let mut worker = WorkerBuilder::default(); - worker + let mut worker = WorkerBuilder::default() .labels(vec!["rust".into(), local.into()]) .workers(1) .wid(WorkerId::random()) @@ -46,8 +47,11 @@ async fn roundtrip() { assert_eq!(job.args(), &[Value::from("ISBN-13:9781718501850")]); Ok::<(), io::Error>(()) }) - .register_fn("image", |_| async move { unreachable!() }); - let mut worker = worker.connect(None).await.unwrap(); + .register_fn("image", |_| async move { unreachable!() }) + .connect(None) + .await + .unwrap(); + let mut client = Client::connect(None).await.unwrap(); client .enqueue( @@ -73,18 +77,20 @@ async fn multi() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); - let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register_fn(local, move |j| { - let tx = sync::Arc::clone(&tx); - Box::pin(async move { - tx.lock().unwrap().send(j).unwrap(); - Ok::<(), io::Error>(()) + let mut w = WorkerBuilder::default() + .hostname("tester".to_string()) + .wid(WorkerId::new(local)) + .register_fn(local, move |j| { + let tx = sync::Arc::clone(&tx); + Box::pin(async move { + tx.lock().unwrap().send(j).unwrap(); + Ok::<(), io::Error>(()) + }) }) - }); - - let mut c = c.connect(None).await.unwrap(); + .connect(None) + .await + .unwrap(); let mut p = Client::connect(None).await.unwrap(); p.enqueue(Job::new(local, vec![Value::from(1), Value::from("foo")]).on_queue(local)) @@ -94,13 +100,13 @@ async fn multi() { .await .unwrap(); - c.run_one(0, &[local]).await.unwrap(); + w.run_one(0, &[local]).await.unwrap(); let job = rx.recv().unwrap(); assert_eq!(job.queue, local); assert_eq!(job.kind(), local); assert_eq!(job.args(), &[Value::from(1), Value::from("foo")]); - c.run_one(0, &[local]).await.unwrap(); + w.run_one(0, &[local]).await.unwrap(); let job = rx.recv().unwrap(); assert_eq!(job.queue, local); assert_eq!(job.kind(), local); @@ -114,18 +120,20 @@ async fn fail() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); - let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(WorkerId::new(local)); - - c.register_fn(local, move |j| { - let tx = sync::Arc::clone(&tx); - Box::pin(async move { - tx.lock().unwrap().send(j).unwrap(); - Err(io::Error::new(io::ErrorKind::Other, "nope")) - }) - }); - let mut c = c.connect(None).await.unwrap(); + let mut w = WorkerBuilder::default() + .hostname("tester".to_string()) + .wid(WorkerId::new(local)) + .register_fn(local, move |j| { + let tx = sync::Arc::clone(&tx); + Box::pin(async move { + tx.lock().unwrap().send(j).unwrap(); + Err(io::Error::new(io::ErrorKind::Other, "nope")) + }) + }) + .connect(None) + .await + .unwrap(); let mut p = Client::connect(None).await.unwrap(); @@ -137,9 +145,9 @@ async fn fail() { .await .unwrap(); - c.run_one(0, &[local]).await.unwrap(); - c.run_one(0, &[local]).await.unwrap(); - drop(c); + w.run_one(0, &[local]).await.unwrap(); + w.run_one(0, &[local]).await.unwrap(); + drop(w); assert_eq!(rx.into_iter().take(2).count(), 2); } @@ -151,13 +159,16 @@ async fn queue() { let (tx, rx) = sync::mpsc::channel(); let tx = sync::Arc::new(sync::Mutex::new(tx)); - let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register_fn(local, move |_job| { - let tx = sync::Arc::clone(&tx); - Box::pin(async move { tx.lock().unwrap().send(true) }) - }); - let mut c = c.connect(None).await.unwrap(); + let mut w = WorkerBuilder::default() + .hostname("tester".to_string()) + .wid(WorkerId::new(local)) + .register_fn(local, move |_job| { + let tx = sync::Arc::clone(&tx); + Box::pin(async move { tx.lock().unwrap().send(true) }) + }) + .connect(None) + .await + .unwrap(); let mut p = Client::connect(None).await.unwrap(); p.enqueue(Job::new(local, vec![Value::from(1)]).on_queue(local)) @@ -165,14 +176,14 @@ async fn queue() { .unwrap(); p.queue_pause(&[local]).await.unwrap(); - let had_job = c.run_one(0, &[local]).await.unwrap(); + let had_job = w.run_one(0, &[local]).await.unwrap(); assert!(!had_job); let worker_executed = rx.try_recv().is_ok(); assert!(!worker_executed); p.queue_resume(&[local]).await.unwrap(); - let had_job = c.run_one(0, &[local]).await.unwrap(); + let had_job = w.run_one(0, &[local]).await.unwrap(); assert!(had_job); let worker_executed = rx.try_recv().is_ok(); assert!(worker_executed); @@ -248,13 +259,16 @@ async fn test_jobs_pushed_in_bulk() { // Let's check that the two well-formatted jobs // have _really_ been enqueued, i.e. that `enqueue_many` // is not an all-or-nothing operation: - let mut c = WorkerBuilder::default(); - c.hostname("tester".to_string()).wid(WorkerId::new(local_3)); - c.register_fn("very_special", move |_job| async { - Ok::<(), io::Error>(()) - }); - c.register_fn("broken", move |_job| async { Ok::<(), io::Error>(()) }); - let mut c = c.connect(None).await.unwrap(); + let mut c = WorkerBuilder::default() + .hostname("tester".to_string()) + .wid(WorkerId::new(local_3)) + .register_fn("very_special", move |_job| async { + Ok::<(), io::Error>(()) + }) + .register_fn("broken", move |_job| async { Ok::<(), io::Error>(()) }) + .connect(None) + .await + .unwrap(); // we targeted "very_special" jobs to "local_4" queue assert!(c.run_one(0, &[local_4]).await.unwrap()); @@ -282,11 +296,12 @@ async fn test_jobs_created_with_builder() { // prepare a client and a worker: let mut cl = Client::connect(None).await.unwrap(); - let mut w = WorkerBuilder::default(); - w.register_fn("rebuild_index", assert_args_empty); - w.register_fn("register_order", assert_args_not_empty); - - let mut w = w.connect(None).await.unwrap(); + let mut w = WorkerBuilder::default() + .register_fn("rebuild_index", assert_args_empty) + .register_fn("register_order", assert_args_not_empty) + .connect(None) + .await + .unwrap(); // prepare some jobs with JobBuilder: let job1 = JobBuilder::new("rebuild_index") diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index db6dda42..be261d4f 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -42,9 +42,11 @@ async fn ent_expiring_job() { // prepare a client and a worker: let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = WorkerBuilder::default(); - c.register_fn("AnExpiringJob", print_job); - let mut c = c.connect(Some(&url)).await.unwrap(); + let mut w = WorkerBuilder::default() + .register_fn("AnExpiringJob", print_job) + .connect(Some(&url)) + .await + .unwrap(); // prepare an expiring job: let job_ttl_secs: u64 = 3; @@ -58,10 +60,10 @@ async fn ent_expiring_job() { // enqueue and fetch immediately job1: p.enqueue(job1).await.unwrap(); - assert_had_one!(&mut c, "ent_expiring_job"); + assert_had_one!(&mut w, "ent_expiring_job"); // check that the queue is drained: - assert_is_empty!(&mut c, "ent_expiring_job"); + assert_is_empty!(&mut w, "ent_expiring_job"); // prepare another one: let job2 = JobBuilder::new("AnExpiringJob") @@ -75,7 +77,7 @@ async fn ent_expiring_job() { tokio::time::sleep(time::Duration::from_secs(job_ttl_secs * 2)).await; // For the non-enterprise edition of Faktory, this assertion will // fail, which should be taken into account when running the test suite on CI. - assert_is_empty!(&mut c, local); + assert_is_empty!(&mut w, local); } #[tokio::test(flavor = "multi_thread")] @@ -91,9 +93,11 @@ async fn ent_unique_job() { // prepare client and worker: let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = WorkerBuilder::default(); - c.register_fn(job_type, print_job); - let mut c = c.connect(Some(&url)).await.unwrap(); + let mut w = WorkerBuilder::default() + .register_fn(job_type, print_job) + .connect(Some(&url)) + .await + .unwrap(); // Reminder. Jobs are considered unique for kind + args + queue. // So the following two jobs, will be accepted by Faktory, since we @@ -113,11 +117,11 @@ async fn ent_unique_job() { p.enqueue(job2).await.unwrap(); - let had_job = c.run_one(0, &[queue_name]).await.unwrap(); + let had_job = w.run_one(0, &[queue_name]).await.unwrap(); assert!(had_job); - let had_another_one = c.run_one(0, &[queue_name]).await.unwrap(); + let had_another_one = w.run_one(0, &[queue_name]).await.unwrap(); assert!(had_another_one); - let and_that_is_it_for_now = !c.run_one(0, &[queue_name]).await.unwrap(); + let and_that_is_it_for_now = !w.run_one(0, &[queue_name]).await.unwrap(); assert!(and_that_is_it_for_now); // let's now create a unique job and followed by a job with @@ -148,13 +152,13 @@ async fn ent_unique_job() { } // Let's now consume the job which is 'holding' a unique lock: - let had_job = c.run_one(0, &[queue_name]).await.unwrap(); + let had_job = w.run_one(0, &[queue_name]).await.unwrap(); assert!(had_job); // And check that the queue is really empty (`job2` from above // has not been queued indeed): - let queue_is_empty = !c.run_one(0, &[queue_name]).await.unwrap(); + let queue_is_empty = !w.run_one(0, &[queue_name]).await.unwrap(); assert!(queue_is_empty); @@ -176,10 +180,10 @@ async fn ent_unique_job() { // ... so the server will accept it: p.enqueue(job2).await.unwrap(); - assert_had_one!(&mut c, queue_name); - assert_had_one!(&mut c, queue_name); + assert_had_one!(&mut w, queue_name); + assert_had_one!(&mut w, queue_name); // and the queue is empty again: - assert_is_empty!(&mut c, queue_name); + assert_is_empty!(&mut w, queue_name); } #[tokio::test(flavor = "multi_thread")] @@ -207,21 +211,23 @@ async fn ent_unique_job_until_success() { // will sleep for a corresponding period of time, pretending // to work hard: let mut client_a = Client::connect(Some(&url1)).await.unwrap(); - let mut worker_a = WorkerBuilder::default(); - worker_a.register_fn(job_type, |job| async move { - let args = job.args().to_owned(); - let mut args = args.iter(); - let diffuculty_level = args - .next() - .expect("job difficulty level is there") - .to_owned(); - let sleep_secs = - serde_json::from_value::(diffuculty_level).expect("a valid number"); - time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; - eprintln!("{:?}", job); - Ok::<(), io::Error>(()) - }); - let mut worker_a = worker_a.connect(Some(&url1)).await.unwrap(); + let mut worker_a = WorkerBuilder::default() + .register_fn(job_type, |job| async move { + let args = job.args().to_owned(); + let mut args = args.iter(); + let diffuculty_level = args + .next() + .expect("job difficulty level is there") + .to_owned(); + let sleep_secs = + serde_json::from_value::(diffuculty_level).expect("a valid number"); + time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; + eprintln!("{:?}", job); + Ok::<(), io::Error>(()) + }) + .connect(Some(&url1)) + .await + .unwrap(); let job = JobBuilder::new(job_type) .args(vec![difficulty_level]) .queue(queue_name) @@ -287,21 +293,23 @@ async fn ent_unique_job_until_start() { let url1 = url.clone(); let handle = tokio::spawn(async move { let mut client_a = Client::connect(Some(&url1)).await.unwrap(); - let mut worker_a = WorkerBuilder::default(); - worker_a.register_fn(job_type, |job| async move { - let args = job.args().to_owned(); - let mut args = args.iter(); - let diffuculty_level = args - .next() - .expect("job difficulty level is there") - .to_owned(); - let sleep_secs = - serde_json::from_value::(diffuculty_level).expect("a valid number"); - time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; - eprintln!("{:?}", job); - Ok::<(), io::Error>(()) - }); - let mut worker_a = worker_a.connect(Some(&url1)).await.unwrap(); + let mut worker_a = WorkerBuilder::default() + .register_fn(job_type, |job| async move { + let args = job.args().to_owned(); + let mut args = args.iter(); + let diffuculty_level = args + .next() + .expect("job difficulty level is there") + .to_owned(); + let sleep_secs = + serde_json::from_value::(diffuculty_level).expect("a valid number"); + time::sleep(time::Duration::from_secs(sleep_secs as u64)).await; + eprintln!("{:?}", job); + Ok::<(), io::Error>(()) + }) + .connect(Some(&url1)) + .await + .unwrap(); client_a .enqueue( JobBuilder::new(job_type) @@ -377,9 +385,11 @@ async fn ent_unique_job_bypass_unique_lock() { // let's consume three times from the queue to verify that the first two jobs // have been enqueued for real, while the last one has not. - let mut c = WorkerBuilder::default(); - c.register_fn("order", print_job); - let mut c = c.connect(Some(&url)).await.unwrap(); + let mut c = WorkerBuilder::default() + .register_fn("order", print_job) + .connect(Some(&url)) + .await + .unwrap(); assert!(c.run_one(0, &[queue_name]).await.unwrap()); assert!(c.run_one(0, &[queue_name]).await.unwrap()); @@ -422,14 +432,12 @@ async fn test_tracker_can_send_and_retrieve_job_execution_progress() { p.enqueue(job_tackable).await.expect("enqueued"); - let mut c = WorkerBuilder::default(); - - { - let job_id = job_id.clone(); - let url = url.clone(); - c.register_fn("order", move |job| { - let job_id = job_id.clone(); - let url = url.clone(); + let url_copy = url.clone(); + let job_id_copy = job_id.clone(); + let mut c = WorkerBuilder::default() + .register_fn("order", move |job| { + let job_id = job_id_copy.clone(); + let url = url_copy.clone(); Box::pin(async move { let mut t = Client::connect(Some(&url)) .await @@ -473,9 +481,7 @@ async fn test_tracker_can_send_and_retrieve_job_execution_progress() { // considering the job done Ok::<(), io::Error>(eprintln!("{:?}", job)) }) - }); - } - let mut c = c + }) .connect(Some(&url)) .await .expect("Successfully ran a handshake with 'Faktory'"); @@ -557,10 +563,12 @@ async fn test_batch_of_jobs_can_be_initiated() { let url = learn_faktory_url(); let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = WorkerBuilder::default(); - c.register_fn("thumbnail", |_job| async { Ok::<(), io::Error>(()) }); - c.register_fn("clean_up", |_job| async { Ok(()) }); - let mut c = c.connect(Some(&url)).await.unwrap(); + let mut w = WorkerBuilder::default() + .register_fn("thumbnail", |_job| async { Ok::<(), io::Error>(()) }) + .register_fn("clean_up", |_job| async { Ok(()) }) + .connect(Some(&url)) + .await + .unwrap(); let mut t = Client::connect(Some(&url)) .await .expect("job progress tracker created successfully"); @@ -622,9 +630,9 @@ async fn test_batch_of_jobs_can_be_initiated() { assert_eq!(s.complete_callback_state, CallbackState::Pending); // consume and execute job 1 ... - assert_had_one!(&mut c, "test_batch_of_jobs_can_be_initiated"); + assert_had_one!(&mut w, "test_batch_of_jobs_can_be_initiated"); // ... and try consuming from the "callback" queue: - assert_is_empty!(&mut c, "test_batch_of_jobs_can_be_initiated__CALLBACKs"); + assert_is_empty!(&mut w, "test_batch_of_jobs_can_be_initiated__CALLBACKs"); // let's ask the Faktory server about the batch status after // we have consumed one job from this batch: @@ -640,9 +648,9 @@ async fn test_batch_of_jobs_can_be_initiated() { assert_eq!(s.failed, 0); // now, consume and execute job 2 - assert_had_one!(&mut c, "test_batch_of_jobs_can_be_initiated"); + assert_had_one!(&mut w, "test_batch_of_jobs_can_be_initiated"); // ... and check the callback queue again: - assert_is_empty!(&mut c, "test_batch_of_jobs_can_be_initiated__CALLBACKs"); // not just yet ... + assert_is_empty!(&mut w, "test_batch_of_jobs_can_be_initiated__CALLBACKs"); // not just yet ... // let's check batch status once again: let s = t @@ -657,7 +665,7 @@ async fn test_batch_of_jobs_can_be_initiated() { assert_eq!(s.failed, 0); // finally, consume and execute job 3 - the last one from the batch - assert_had_one!(&mut c, "test_batch_of_jobs_can_be_initiated"); + assert_had_one!(&mut w, "test_batch_of_jobs_can_be_initiated"); // let's check batch status to see what happens after // all the jobs from the batch have been executed: @@ -674,7 +682,7 @@ async fn test_batch_of_jobs_can_be_initiated() { assert_eq!(s.complete_callback_state, CallbackState::Enqueued); // let's now successfully consume from the "callback" queue: - assert_had_one!(&mut c, "test_batch_of_jobs_can_be_initiated__CALLBACKs"); + assert_had_one!(&mut w, "test_batch_of_jobs_can_be_initiated__CALLBACKs"); // let's check batch status one last time: let s = t @@ -694,9 +702,11 @@ async fn test_batches_can_be_nested() { // Set up 'client', 'worker', and 'tracker': let mut p = Client::connect(Some(&url)).await.unwrap(); - let mut c = WorkerBuilder::default(); - c.register_fn("jobtype", |_job| async { Ok::<(), io::Error>(()) }); - let mut _c = c.connect(Some(&url)).await.unwrap(); + let _w = WorkerBuilder::default() + .register_fn("jobtype", |_job| async { Ok::<(), io::Error>(()) }) + .connect(Some(&url)) + .await + .unwrap(); let mut t = Client::connect(Some(&url)) .await .expect("job progress tracker created successfully"); @@ -715,7 +725,7 @@ async fn test_batches_can_be_nested() { .queue("test_batches_can_be_nested") .build(); - // Sccording to Faktory docs: + // According to Faktory docs: // "The callback for a parent batch will not enqueue until the callback for the child batch has finished." // See: https://github.com/contribsys/faktory/wiki/Ent-Batches#guarantees let parent_cb_job = Job::builder("clean_up") @@ -795,10 +805,12 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { // prepare a client, a worker of 'order' jobs, and a tracker: let mut cl = Client::connect(Some(&url)).await.unwrap(); let mut tr = Client::connect(Some(&url)).await.unwrap(); - let mut w = WorkerBuilder::default(); - w.register_fn("order", |_job| async { Ok(()) }); - w.register_fn("order_clean_up", |_job| async { Ok::<(), io::Error>(()) }); - let mut c = w.connect(Some(&url)).await.unwrap(); + let mut w = WorkerBuilder::default() + .register_fn("order", |_job| async { Ok(()) }) + .register_fn("order_clean_up", |_job| async { Ok::<(), io::Error>(()) }) + .connect(Some(&url)) + .await + .unwrap(); let mut jobs = some_jobs( "order", @@ -836,14 +848,14 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { // consume those 3 jobs successfully; for _ in 0..3 { assert_had_one!( - &mut c, + &mut w, "test_callback_will_not_be_queued_unless_batch_gets_committed" ); } // verify the queue is drained: assert_is_empty!( - &mut c, + &mut w, "test_callback_will_not_be_queued_unless_batch_gets_committed" ); @@ -856,7 +868,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { // to double-check, let's assert the success callbacks queue is empty: assert_is_empty!( - &mut c, + &mut w, "test_callback_will_not_be_queued_unless_batch_gets_committed__CALLBACKs" ); @@ -869,7 +881,7 @@ async fn test_callback_will_not_be_queued_unless_batch_gets_committed() { // finally, let's consume from the success callbacks queue ... assert_had_one!( - &mut c, + &mut w, "test_callback_will_not_be_queued_unless_batch_gets_committed__CALLBACKs" ); @@ -927,18 +939,19 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { assert_eq!(s.complete_callback_state, CallbackState::Enqueued); assert_eq!(s.success_callback_state, CallbackState::Pending); - let mut c = WorkerBuilder::default(); - c.register_fn(complete_cb_jobtype, |_job| async { Ok(()) }); - c.register_fn(success_cb_jobtype, |_job| async { - Err(io::Error::new( - io::ErrorKind::Other, - "we want this one to fail to test the 'CallbackState' behavior", - )) - }); - - let mut c = c.connect(Some(&url)).await.unwrap(); + let mut w = WorkerBuilder::default() + .register_fn(complete_cb_jobtype, |_job| async { Ok(()) }) + .register_fn(success_cb_jobtype, |_job| async { + Err(io::Error::new( + io::ErrorKind::Other, + "we want this one to fail to test the 'CallbackState' behavior", + )) + }) + .connect(Some(&url)) + .await + .unwrap(); - assert_had_one!(&mut c, q_name); // complete callback consumed + assert_had_one!(&mut w, q_name); // complete callback consumed let s = tracker .get_batch_status(bid.clone()) @@ -954,7 +967,7 @@ async fn test_callback_will_be_queued_upon_commit_even_if_batch_is_empty() { CallbackState::Enqueued => {} _ => panic!("Expected the callback to have been enqueued, since the `complete` callback has already executed"), } - assert_had_one!(&mut c, q_name); // success callback consumed + assert_had_one!(&mut w, q_name); // success callback consumed let s = tracker .get_batch_status(bid.clone()) diff --git a/tests/tls/native_tls.rs b/tests/tls/native_tls.rs index b159c959..582a6871 100644 --- a/tests/tls/native_tls.rs +++ b/tests/tls/native_tls.rs @@ -19,15 +19,8 @@ async fn roundtrip_tls() { if env::var_os("FAKTORY_URL_SECURE").is_none() { return; } - let local = "roundtrip_tls"; - let (tx, rx) = sync::mpsc::channel(); - let mut c = WorkerBuilder::default(); - - c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register(local, fixtures::JobHandler::new(tx)); - let tls = || async { let connector = TlsConnector::builder() .danger_accept_invalid_certs(true) @@ -38,12 +31,23 @@ async fn roundtrip_tls() { .unwrap() }; - let mut c = c.connect_with(tls().await, None).await.unwrap(); - let mut p = Client::connect_with(tls().await, None).await.unwrap(); - p.enqueue(Job::new(local, vec!["z"]).on_queue(local)) + let mut worker = WorkerBuilder::default() + .hostname("tester".to_string()) + .wid(WorkerId::new(local)) + .register(local, fixtures::JobHandler::new(tx)) + .connect_with(tls().await, None) .await .unwrap(); - c.run_one(0, &[local]).await.unwrap(); + + // "one-shot" client + Client::connect_with(tls().await, None) + .await + .unwrap() + .enqueue(Job::new(local, vec!["z"]).on_queue(local)) + .await + .unwrap(); + + worker.run_one(0, &[local]).await.unwrap(); let job = rx.recv().unwrap(); assert_eq!(job.queue, local); diff --git a/tests/tls/rustls.rs b/tests/tls/rustls.rs index a7fa428b..5d6e627b 100644 --- a/tests/tls/rustls.rs +++ b/tests/tls/rustls.rs @@ -21,15 +21,8 @@ async fn roundtrip_tls() { if env::var_os("FAKTORY_URL_SECURE").is_none() { return; } - let local = "roundtrip_tls"; - let (tx, rx) = sync::mpsc::channel(); - let mut c = WorkerBuilder::default(); - - c.hostname("tester".to_string()).wid(WorkerId::new(local)); - c.register(local, fixtures::JobHandler::new(tx)); - let tls = || async { let verifier = fixtures::TestServerCertVerifier::new( SignatureScheme::RSA_PSS_SHA512, @@ -52,12 +45,23 @@ async fn roundtrip_tls() { .unwrap() }; - let mut c = c.connect_with(tls().await, None).await.unwrap(); - let mut p = Client::connect_with(tls().await, None).await.unwrap(); - p.enqueue(Job::new(local, vec!["z"]).on_queue(local)) + let mut worker = WorkerBuilder::default() + .hostname("tester".to_string()) + .wid(WorkerId::new(local)) + .register(local, fixtures::JobHandler::new(tx)) + .connect_with(tls().await, None) + .await + .unwrap(); + + // "one-shot" client + Client::connect_with(tls().await, None) + .await + .unwrap() + .enqueue(Job::new(local, vec!["z"]).on_queue(local)) .await .unwrap(); - c.run_one(0, &[local]).await.unwrap(); + + worker.run_one(0, &[local]).await.unwrap(); let job = rx.recv().unwrap(); assert_eq!(job.queue, local); From 7724d2472c2beeb8eb8b714ec27071c07dd6d9ed Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 28 Apr 2024 17:31:13 +0500 Subject: [PATCH 124/175] Run cargo fmt on sources --- src/worker/runner.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 8d29c289..e097bf16 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -31,17 +31,17 @@ use std::future::Future; /// Ok(()) /// } /// } -/// +/// /// let handler = MyHandler { /// config: "bar".to_string(), /// }; -/// +/// /// let mut w = WorkerBuilder::default() /// .register("foo", handler) /// .connect(None) /// .await /// .unwrap(); -/// +/// /// if let Err(e) = w.run(&["default"]).await { /// println!("worker failed: {}", e); /// } From 46e545754324647b6f42b9ac9905996bde3650a7 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 28 Apr 2024 18:02:51 +0500 Subject: [PATCH 125/175] Make min version pass --- Cargo.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 6a4e8417..a2720c70 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,7 +60,10 @@ native-tls = { version = "0.2.4", optional = true } num-bigint = "0.4.2" oid-registry = "0.6.1" openssl = { version = "0.10.60", optional = true } -rustls = "0.22.1" + +# TryFrom for ServerName<'static> has been implemented: +# https://github.com/rustls/pki-types/compare/rustls:3793627...rustls:1303efa# +rustls-pki-types = { version = "1.0.1", optional = true } # Lockstep between `serde` and `serde_derive` was introduced with the "pinned" release: # https://github.com/serde-rs/serde/compare/v1.0.185...v1.0.186#diff-2843fc1320fa24a059f5ca967ee45d116110116263a8ba311a3aca3793c562f0R34-R41 From 57c958c02a17ae8834fb041b64872245fb7db925 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 28 Apr 2024 18:04:10 +0500 Subject: [PATCH 126/175] Make min version pass. Re-gen lockfile --- Cargo.lock | 161 ++++++++++++++++++++++++++++------------------------- 1 file changed, 84 insertions(+), 77 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b2ae48b8..3b192f33 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -138,18 +138,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] name = "async-trait" -version = "0.1.79" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -196,9 +196,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" @@ -208,9 +208,9 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.91" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd97381a8cc6493395a5afc4c691c1084b3768db713b73aa215217aa245d153" +checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" [[package]] name = "cfg-if" @@ -220,9 +220,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", @@ -230,7 +230,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "der-parser" @@ -414,7 +414,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -443,7 +443,7 @@ dependencies = [ "openssl", "pin-project", "rand", - "rustls", + "rustls-pki-types", "serde", "serde_derive", "serde_json", @@ -459,9 +459,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "fnv" @@ -511,9 +511,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06fddc2749e0528d2813f95e050e87e52c8cbbae56223b9babf73b3e53b0cc6" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "libc", @@ -779,7 +779,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -823,7 +823,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -852,18 +852,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -930,9 +930,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.32" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ "bitflags 2.5.0", "errno", @@ -957,15 +957,15 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" +checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54" [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.102.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf" dependencies = [ "ring", "rustls-pki-types", @@ -1012,29 +1012,29 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.197" +version = "1.0.199" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.199" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] name = "serde_json" -version = "1.0.115" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" dependencies = [ "itoa", "ryu", @@ -1099,9 +1099,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.58" +version = "2.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" dependencies = [ "proc-macro2", "quote", @@ -1134,29 +1134,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.58" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.58" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -1175,9 +1175,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -1223,7 +1223,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -1366,7 +1366,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", "wasm-bindgen-shared", ] @@ -1388,7 +1388,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1427,7 +1427,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -1445,7 +1445,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -1465,17 +1465,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -1486,9 +1487,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -1498,9 +1499,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -1510,9 +1511,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -1522,9 +1529,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -1534,9 +1541,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -1546,9 +1553,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -1558,9 +1565,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "x509-parser" From 70d40ad3c5c8c0014f0e81a7419923acede34908 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 28 Apr 2024 18:12:06 +0500 Subject: [PATCH 127/175] Make min version pass. Use rustls_pki_types dev dep --- Cargo.lock | 1062 ++++++++++++++++++++++++------------------- Cargo.toml | 1 + tests/tls/rustls.rs | 2 +- 3 files changed, 598 insertions(+), 467 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b192f33..6ec49b8f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,18 +4,18 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" dependencies = [ "gimli", ] [[package]] name = "adler" -version = "1.0.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "6aa100a6f6f525226719f8de3f70076be4f4191801ebd92621450d1c51e9053d" [[package]] name = "android-tzdata" @@ -34,9 +34,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "bff2cf94a3dbe2d57cbd56485e1bd7436455058034d6c2d47be51d4e5e4bc6ab" dependencies = [ "anstyle", "anstyle-parse", @@ -48,49 +48,49 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "0238ca56c96dfa37bdf7c373c8886dd591322500aceeeccdb2216fe06dc2f796" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "asn1-rs" -version = "0.5.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +checksum = "e577111f9ca51289da894bcb4b17047737218c2e4477ea2fc36cd3922172062f" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", "displaydoc", "nom", - "num-traits", + "num-traits 0.2.14", "rusticata-macros", "thiserror", "time", @@ -98,13 +98,13 @@ dependencies = [ [[package]] name = "asn1-rs-derive" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +checksum = "6b9002415e8baa0177a3ae0946fb62ca6e9e470755717409134e44d8e0ae2cad" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.91", "synstructure", ] @@ -116,57 +116,56 @@ checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.91", ] [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite", ] [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 1.0.91", ] [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.46", ] [[package]] name = "autocfg" -version = "1.2.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "88fb5a785d6b44fd9d6700935608639af1b8356de1e55d5f7c2740f4faa15d82" dependencies = [ "addr2line", "cc", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", "object", @@ -175,42 +174,48 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.3.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "f5cde24d1b2e2216a726368b2363a273739c91f4e3eb4e0dd12d672d396ad989" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "24a6904aef64d73cf10ab17ebace7befb918b82164785cb89907993be7f83813" [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "03588e54c62ae6d763e2a80090d50353b785795361b4ff5b3bf0a5097fc31c0b" dependencies = [ "generic-array", ] [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187" [[package]] name = "bytes" -version = "1.6.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "ad1f8e949d755f9d79112b5bb46938e0ef9d3804a0b16dfab13aafcaa5f0fa72" [[package]] name = "cc" -version = "1.0.95" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" + +[[package]] +name = "cfg-if" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" +checksum = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de" [[package]] name = "cfg-if" @@ -220,45 +225,55 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "41daef31d7a747c5c847246f36de49ced6f7403b4cdabc807a97b5cc184cda7a" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", - "num-traits", + "num-traits 0.2.14", "serde", "wasm-bindgen", - "windows-targets 0.52.5", + "windows-targets 0.52.0", ] [[package]] name = "clap" -version = "4.5.4" +version = "4.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.1", + "strsim", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "codespan-reporting" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6ce42b8998a383572e0a802d859b1f00c79b7b7474e62fff88ee5c2845d9c13" +dependencies = [ + "termcolor", + "unicode-width", +] [[package]] name = "colorchoice" @@ -268,44 +283,93 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "core-foundation" -version = "0.9.4" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.7.0", "libc", ] [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "a4600d695eb3f6ce1cd44e6e291adceb2cc3ab12f20a33777ecd0bf6eba34e06" dependencies = [ "generic-array", - "typenum", +] + +[[package]] +name = "cxx" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c53d75fe543215ca091d792e13351dcb940842dd2829b2a2dd43ab4bd1a015" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbb7ed9eb5b6ed9942747aea961a4303b7a56c54f582ea8304cdae391d29d274" +dependencies = [ + "cc", + "codespan-reporting", + "lazy_static", + "proc-macro2", + "quote", + "scratch", + "syn 1.0.91", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca21461be76a23df4f63a2107a0bb406ef41548e635ff7edcbd1ab5a6bb997e2" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee8da0a2c0697647b5824844a5d2dedcd97a2d7b75e6e4d0b8dd183e4081e1cf" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.91", ] [[package]] name = "darling" -version = "0.14.4" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "f1a5d2e8b5a94b2261efb20e99a01255b9c5293797d69bbf04600567b2f9b8d7" dependencies = [ "darling_core", "darling_macro", @@ -313,58 +377,49 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "8f1c7d56716be82d9c6adb967cfe700955179ea88806e898483dad6987330a54" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 1.0.109", + "strsim", + "syn 1.0.91", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "64dd7e5a75a00cb6799ae9fbbfc3bba0134def6579a9e27564e72c839c837bed" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 1.0.91", ] [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" [[package]] name = "der-parser" -version = "8.2.0" +version = "8.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" dependencies = [ "asn1-rs", "displaydoc", "nom", "num-bigint", - "num-traits", + "num-traits 0.2.14", "rusticata-macros", ] -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", -] - [[package]] name = "derive_builder" version = "0.12.0" @@ -383,7 +438,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.91", ] [[package]] @@ -393,14 +448,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" dependencies = [ "derive_builder_core", - "syn 1.0.109", + "syn 1.0.91", ] [[package]] name = "digest" -version = "0.10.7" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "8cb780dce4f9a8f5c087362b3a4595936b2019e7c8b30f2c3e9a7e94e6ae9837" dependencies = [ "block-buffer", "crypto-common", @@ -408,24 +463,20 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "278ef1934318d524612205f69df005eea30ec10edf7913e500b5a527fce55bc0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 1.0.91", ] [[package]] -name = "errno" -version = "0.3.8" +name = "dtoa" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] +checksum = "5edd69c67b2f8e0911629b7e6b8a34cb3956613cd7c6e6414966dee349c2db4f" [[package]] name = "faktory" @@ -442,7 +493,7 @@ dependencies = [ "oid-registry", "openssl", "pin-project", - "rand", + "rand 0.8.0", "rustls-pki-types", "serde", "serde_derive", @@ -457,12 +508,6 @@ dependencies = [ "x509-parser", ] -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - [[package]] name = "fnv" version = "1.0.7" @@ -471,39 +516,46 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foreign-types" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "a21b40436003b2a1e22483c5ed6c3d25e755b6b3120f601cc22aa57e25dc9065" dependencies = [ "foreign-types-shared", ] [[package]] name = "foreign-types-shared" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "baa1839fc3c5487b5e129ea4f774e3fd84e6c4607127315521bc014a722ebc9e" [[package]] -name = "form_urlencoded" -version = "1.2.1" +name = "fuchsia-zircon" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "3b5365afd01fdf916e775a224e844f80b3b9710d0f4f00903e219e859474d7ae" dependencies = [ - "percent-encoding", + "bitflags 1.0.0", + "fuchsia-zircon-sys", ] +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069def9a0e5feb7e9120635f6ebad24d853a6affbb077fec84d0888316cf9ae6" + [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "30f0ab78f035d7ed5d52689f4b05a56c15ad80097f1d860e644bdc9dba3831f2" [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" dependencies = [ "typenum", "version_check", @@ -511,32 +563,26 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.14" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", "wasi", ] [[package]] name = "gimli" -version = "0.28.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" [[package]] name = "hostname" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "01b1af8d6d068ba9de1c39c6ff0d879aed20f74873d4d3929a4535000bb07886" dependencies = [ "libc", "match_cfg", @@ -545,25 +591,26 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" dependencies = [ "android_system_properties", - "core-foundation-sys", + "core-foundation-sys 0.8.3", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows", ] [[package]] name = "iana-time-zone-haiku" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" dependencies = [ - "cc", + "cxx", + "cxx-build", ] [[package]] @@ -574,25 +621,32 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" dependencies = [ + "matches", "unicode-bidi", "unicode-normalization", ] [[package]] name = "itoa" -version = "1.0.11" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "91fd9dc2c587067de817fec4ad355e3818c3d893a78cab32a0a474c7a15bb8d5" + +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c" dependencies = [ "wasm-bindgen", ] @@ -605,21 +659,27 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] -name = "linux-raw-sys" -version = "0.4.13" +name = "link-cplusplus" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "4dfb9f65d9966f6ca6522043978030b564f3291af987fbf1dd55b6a064ba1b36" +dependencies = [ + "cc", +] [[package]] name = "log" -version = "0.4.21" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f" +dependencies = [ + "cfg-if 0.1.2", +] [[package]] name = "match_cfg" @@ -627,43 +687,52 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +[[package]] +name = "matches" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15305656809ce5a4805b1ff2946892810992197ce1270ff79baded852187942e" + [[package]] name = "memchr" -version = "2.7.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "e01e64d9017d18e7fc09d8e4fe0e28ff6931019e979fb8019319db7ca827f8a6" +dependencies = [ + "libc", +] [[package]] name = "minimal-lexical" -version = "0.2.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +checksum = "6595bb28ed34f43c3fe088e48f6cfb2e033cab45f25a5384d5fdf564fbc8c4b2" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.11" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d" dependencies = [ "lazy_static", "libc", @@ -679,68 +748,75 @@ dependencies = [ [[package]] name = "nom" -version = "7.1.3" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "7ffd9d26838a953b4af82cbeb9f1592c6798916983959be223a7124e992742c1" dependencies = [ "memchr", "minimal-lexical", + "version_check", ] [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535" dependencies = [ "autocfg", "num-integer", - "num-traits", + "num-traits 0.2.14", ] -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - [[package]] name = "num-integer" -version = "0.1.46" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" dependencies = [ - "num-traits", + "autocfg", + "num-traits 0.2.14", ] [[package]] name = "num-traits" -version = "0.2.18" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "51eab148f171aefad295f8cece636fc488b9b392ef544da31ea4b8ef6b9e9c39" + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" dependencies = [ - "hermit-abi", "libc", ] [[package]] -name = "object" -version = "0.32.2" +name = "num_threads" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "71a1eb3a36534514077c1e079ada2fb170ef30c47d203aa6916138cf882ecd52" dependencies = [ - "memchr", + "libc", ] +[[package]] +name = "object" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" + [[package]] name = "oid-registry" version = "0.6.1" @@ -752,18 +828,18 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" dependencies = [ - "bitflags 2.5.0", - "cfg-if", + "bitflags 2.2.1", + "cfg-if 1.0.0", "foreign-types", "libc", "once_cell", @@ -773,26 +849,26 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 1.0.91", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "756d49c8424483a3df3b5d735112b4da22109ced9a8294f1f5cdf80fb3810919" [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" dependencies = [ "cc", "libc", @@ -802,88 +878,93 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "ba4f28a6faf4ffea762ba8f4baef48c61a6db348647c73095034041fc79dd954" [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.46", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "2c516611246607d0c04186886dbb3a754368ef82c79e9827a802c6d836dd111c" [[package]] name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "powerfmt" -version = "0.2.0" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +checksum = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" [[package]] name = "proc-macro2" -version = "1.0.81" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] [[package]] name = "rand" -version = "0.8.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "9d5f78082e6a6d042862611e9640cf20776185fee506cf6cf67e93c6225cee31" +dependencies = [ + "fuchsia-zircon", + "libc", +] + +[[package]] +name = "rand" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76330fb486679b4ace3670f117bbc9e16204005c4bde9c4bd372f45bed34f12" dependencies = [ "libc", "rand_chacha", "rand_core", + "rand_hc", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", "rand_core", @@ -891,61 +972,71 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" dependencies = [ "getrandom", ] +[[package]] +name = "rand_hc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +dependencies = [ + "rand_core", +] + +[[package]] +name = "redox_syscall" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a48131ab10dbeb17202bd1dcb9c9798963a58a50c9ec31640f237358832094" + +[[package]] +name = "remove_dir_all" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc5b3ce5d5ea144bb04ebd093a9e14e9765bcfec866aecda9b6dec43b3d1e24" +dependencies = [ + "winapi", +] + [[package]] name = "ring" -version = "0.17.8" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "fb9d44f9bf6b635117787f72416783eb7e4227aaf255e5ce739563d817176a7e" dependencies = [ "cc", - "cfg-if", "getrandom", "libc", "spin", "untrusted", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "3058a43ada2c2d0b92b3ae38007a2d0fa5e9db971be260e0171408a4ff471c95" [[package]] name = "rusticata-macros" -version = "4.1.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +checksum = "65c52377bb2288aa522a0c8208947fada1e0c76397f108cc08f57efe6077b50d" dependencies = [ "nom", ] -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - [[package]] name = "rustls" -version = "0.22.4" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +checksum = "5bc238b76c51bbc449c55ffbc39d03772a057cc8cf783c49d4af4c2537b74a8b" dependencies = [ "log", "ring", @@ -957,116 +1048,117 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.5.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54" +checksum = "e7673e0aa20ee4937c6aacfc12bb8341cfbf054cdd21df6bec5fd0629fe9339b" [[package]] name = "rustls-webpki" -version = "0.102.3" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf" +checksum = "de2635c8bc2b88d367767c5de8ea1d8db9af3f6219eba28442242d9ab81d1b89" dependencies = [ "ring", "rustls-pki-types", "untrusted", ] -[[package]] -name = "ryu" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" - [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021" dependencies = [ - "windows-sys 0.52.0", + "lazy_static", + "winapi", ] +[[package]] +name = "scratch" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e114536316b51a5aa7a0e59fc49661fd263c5507dd08bd28de052e57626ce69" + [[package]] name = "security-framework" -version = "2.10.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +checksum = "97bbedbe81904398b6ebb054b3e912f99d55807125790f3198ac990d98def5b0" dependencies = [ - "bitflags 1.3.2", + "bitflags 1.0.0", "core-foundation", - "core-foundation-sys", - "libc", + "core-foundation-sys 0.7.0", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.10.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +checksum = "06fd2f23e31ef68dd2328cc383bd493142e46107a3a0e24f7d734e3f3b80fe4c" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.7.0", "libc", ] [[package]] name = "serde" -version = "1.0.199" +version = "1.0.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" +checksum = "9f5db24220c009de9bd45e69fb2938f4b6d2df856aa9304ce377b3180f83b7c1" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.199" +version = "1.0.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" +checksum = "5ad697f7e0b65af4983a4ce8f56ed5b357e8d3c36651bf6a7e13639c17b8e670" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.46", ] [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "e9b1ec939469a124b27e208106550c38358ed4334d2b1b5b3825bc1ee37d946a" dependencies = [ - "itoa", - "ryu", + "dtoa", + "itoa 0.3.0", + "num-traits 0.1.32", "serde", ] [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "cpufeatures", "digest", ] [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "spin" -version = "0.9.8" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5" [[package]] name = "strsim" @@ -1074,12 +1166,6 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - [[package]] name = "subtle" version = "2.5.0" @@ -1088,20 +1174,20 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "1.0.109" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" dependencies = [ "proc-macro2", "quote", - "unicode-ident", + "unicode-xid 0.2.0", ] [[package]] name = "syn" -version = "2.0.60" +version = "2.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" dependencies = [ "proc-macro2", "quote", @@ -1110,99 +1196,81 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.12.6" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "affc27d5f1764f7487bafeb41e380664790716e38ba45d8487bddcc53e79f0f6" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "unicode-xid", + "syn 1.0.91", + "unicode-xid 0.1.0", ] [[package]] name = "tempfile" -version = "3.10.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "47776f63b85777d984a50ce49d6b9e58826b6a3766a449fc95bc66cd5663c15b" dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys 0.52.0", + "libc", + "rand 0.4.1", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52c023823933499250b43960b272e25336c6e2ab8684672edc34489f049ccdd" +dependencies = [ + "wincolor", ] [[package]] name = "thiserror" -version = "1.0.59" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.59" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 1.0.91", ] [[package]] name = "time" -version = "0.3.36" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d" dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", + "itoa 1.0.1", + "libc", + "num_threads", "time-macros", ] -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - [[package]] name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "25eb0ca3468fc0acc11828786797f6ef9aa1555e4a211a60d64cc8e4d1be47d6" [[package]] name = "tokio" -version = "1.37.0" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ "backtrace", "bytes", @@ -1212,7 +1280,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1223,7 +1291,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.46", ] [[package]] @@ -1249,9 +1317,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "e4cdeb73537e63f98adcd73138af75e3f368ccaecffaa29d7eb61b9f5a440457" dependencies = [ "futures-core", "pin-project-lite", @@ -1260,9 +1328,9 @@ dependencies = [ [[package]] name = "tokio-test" -version = "0.4.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" +checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719" dependencies = [ "async-stream", "bytes", @@ -1273,36 +1341,48 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "2560b941fdb9ea38301b9b708504d612fcdf9c91a8c31d82219bd74cb07d304d" +dependencies = [ + "matches", +] [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] +checksum = "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f" + +[[package]] +name = "unicode-width" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc85732b6d55a0d520aaf765536a188d9d993770c28633422f85bb646da61335" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" [[package]] name = "untrusted" @@ -1312,12 +1392,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "77ddaf52e65c6b81c56b7e957c0b1970f7937f21c5c6774c4e56fcb4e20b48c6" dependencies = [ - "form_urlencoded", "idna", + "matches", "percent-encoding", ] @@ -1329,15 +1409,15 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "vcpkg" -version = "0.2.15" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "45d3d553fd9413fffe7147a20171d640eda0ad4c070acd7d0c885a21bcd2e8b7" [[package]] name = "wasi" @@ -1347,34 +1427,34 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae" dependencies = [ "bumpalo", + "lazy_static", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.60", + "syn 1.0.91", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1382,28 +1462,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 1.0.91", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489" [[package]] name = "winapi" -version = "0.3.9" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "b3ad91d846a4a5342c1fb7008d26124ee6cf94a3953751618577295373b32117" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", @@ -1411,23 +1491,32 @@ dependencies = [ [[package]] name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "a16a8e2ebfc883e2b1771c6482b1fb3c6831eab289ba391619a2d93a7356220f" [[package]] name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "8ca29cb03c8ceaf20f8224a18a530938305e9872b1478ea24ff44b4f503a1d1d" [[package]] -name = "windows-core" -version = "0.52.0" +name = "wincolor" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "b9dc3aa9dcda98b5a16150c54619c1ead22e3d3a5d458778ae914be760aa981a" dependencies = [ - "windows-targets 0.52.5", + "winapi", +] + +[[package]] +name = "windows" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" +dependencies = [ + "windows-targets 0.42.2", ] [[package]] @@ -1436,138 +1525,179 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.48.0", ] [[package]] -name = "windows-sys" -version = "0.52.0" +name = "windows-targets" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ - "windows-targets 0.52.5", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", ] [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" +name = "windows_i686_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "x509-parser" @@ -1588,6 +1718,6 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" diff --git a/Cargo.toml b/Cargo.toml index a2720c70..d4987f00 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,6 +49,7 @@ tokio-rustls = { version = "0.25.0", optional = true } url = "2" [dev-dependencies] +rustls-pki-types = "1.0.1" tokio = { version = "1.35.1", features = ["rt", "macros"] } tokio-test = "0.4.3" x509-parser = "0.15.1" diff --git a/tests/tls/rustls.rs b/tests/tls/rustls.rs index 5d6e627b..9bdc4301 100644 --- a/tests/tls/rustls.rs +++ b/tests/tls/rustls.rs @@ -119,10 +119,10 @@ mod fixtures { use std::fs; use std::path::PathBuf; + use rustls_pki_types::{CertificateDer, ServerName, UnixTime}; use tokio_rustls::rustls::client::danger::{ HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier, }; - use tokio_rustls::rustls::pki_types::{CertificateDer, ServerName, UnixTime}; use tokio_rustls::rustls::DigitallySignedStruct; use tokio_rustls::rustls::Error as RustlsError; use tokio_rustls::rustls::SignatureScheme; From 2f61dcaab6ff78afdbcfa5bb00f922d99f89f5de Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 14 May 2024 11:35:17 +0500 Subject: [PATCH 128/175] Resotore Timedelta::seconds usage --- src/proto/single/ent/mod.rs | 6 +++--- tests/real/community.rs | 2 +- tests/real/enterprise.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/proto/single/ent/mod.rs b/src/proto/single/ent/mod.rs index 7961f8b0..e6f4f63e 100644 --- a/src/proto/single/ent/mod.rs +++ b/src/proto/single/ent/mod.rs @@ -100,7 +100,7 @@ mod test { #[test] fn test_expiration_feature_for_enterprise_faktory() { - let five_min = chrono::Duration::try_seconds(299).unwrap(); + let five_min = chrono::Duration::seconds(299); let exp_at = Utc::now() + five_min; let job0 = half_stuff().expires_at(exp_at).build(); let stored = job0.custom.get("expires_at").unwrap(); @@ -126,8 +126,8 @@ mod test { #[test] fn test_same_purpose_setters_applied_simultaneously() { - let expires_at0 = Utc::now() + chrono::Duration::try_seconds(300).unwrap(); - let expires_at1 = Utc::now() + chrono::Duration::try_seconds(300).unwrap(); + let expires_at0 = Utc::now() + chrono::Duration::seconds(300); + let expires_at1 = Utc::now() + chrono::Duration::seconds(300); let job = half_stuff() .unique_for(59) .add_to_custom_data("unique_for", 599) diff --git a/tests/real/community.rs b/tests/real/community.rs index d3edb36d..b14b20d3 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,7 +1,6 @@ use crate::skip_check; use faktory::{Client, Job, JobBuilder, JobId, Worker, WorkerBuilder, WorkerId}; use serde_json::Value; -use std::future::Future; use std::{io, sync}; #[tokio::test(flavor = "multi_thread")] @@ -342,6 +341,7 @@ async fn test_jobs_created_with_builder() { assert!(had_job); } +use std::future::Future; use std::pin::Pin; use tokio::sync::mpsc; fn process_hard_task( diff --git a/tests/real/enterprise.rs b/tests/real/enterprise.rs index be261d4f..94fe13b8 100644 --- a/tests/real/enterprise.rs +++ b/tests/real/enterprise.rs @@ -51,7 +51,7 @@ async fn ent_expiring_job() { // prepare an expiring job: let job_ttl_secs: u64 = 3; - let ttl = chrono::Duration::try_seconds(job_ttl_secs as i64).unwrap(); + let ttl = chrono::Duration::seconds(job_ttl_secs as i64); let job1 = JobBuilder::new("AnExpiringJob") .args(vec!["ISBN-13:9781718501850"]) .queue(local) From 1f5d9b16525b778595a5ab0f0124ba1eeafcdbf2 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 14 May 2024 14:19:55 +0500 Subject: [PATCH 129/175] Use CancellationToken to signal to Worker::run command --- Cargo.lock | 20 ++++++++ Cargo.toml | 2 +- examples/run.rs | 18 ++++--- examples/run_to_completion.rs | 4 +- src/lib.rs | 2 +- src/worker/channel.rs | 37 -------------- src/worker/mod.rs | 95 +++++++++++++++-------------------- tests/real/community.rs | 31 ++---------- 8 files changed, 82 insertions(+), 127 deletions(-) delete mode 100644 src/worker/channel.rs diff --git a/Cargo.lock b/Cargo.lock index 21261986..1488ad50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -446,6 +446,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls", "tokio-test", + "tokio-util", "tracing", "tracing-subscriber", "url", @@ -494,6 +495,12 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + [[package]] name = "generic-array" version = "0.14.7" @@ -1322,6 +1329,19 @@ dependencies = [ "tokio-stream", ] +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + [[package]] name = "tracing" version = "0.1.40" diff --git a/Cargo.toml b/Cargo.toml index c943be4b..b9b54838 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,6 @@ tokio = { version = "1.35.1", features = [ "macros", "net", "rt", - "sync", "time", "signal", "rt-multi-thread", @@ -52,6 +51,7 @@ tokio-native-tls = { version = "0.3.1", optional = true } tokio-rustls = { version = "0.25.0", optional = true } tracing = "0.1" url = "2" +tokio-util = "0.7.11" [dev-dependencies] rustls-pki-types = "1.0.1" diff --git a/examples/run.rs b/examples/run.rs index a66226e5..34b1454c 100644 --- a/examples/run.rs +++ b/examples/run.rs @@ -1,5 +1,6 @@ -use faktory::{channel, Message, WorkerBuilder}; +use faktory::Worker; use std::io::Error as IOError; +use tokio_util::sync::CancellationToken; #[tokio::main] async fn main() { @@ -8,7 +9,7 @@ async fn main() { .init(); // create a worker - let mut w = WorkerBuilder::default() + let mut w = Worker::builder() .graceful_shutdown_period(2_000) .register_fn("job_type", |j| async move { println!("{:?}", j); @@ -18,12 +19,17 @@ async fn main() { .await .expect("Connected to server"); - // create a channel to send a signal to the worker - let (tx, rx) = channel(); + // create a cancellation token + let token = CancellationToken::new(); - let handle = tokio::spawn(async move { w.run(&["default"], Some(rx)).await }); + // create a child token and pass it to the spawned task (one could - alternatively - just + // clone the "parent" token) + let child_token = token.child_token(); - tx.send(Message::Exit(100)).expect("sent ok"); + let handle = tokio::spawn(async move { w.run(&["default"], Some(child_token)).await }); + + // cancel the task + token.cancel(); let nrunning = handle.await.expect("joined ok").expect("no worker errors"); diff --git a/examples/run_to_completion.rs b/examples/run_to_completion.rs index 16268204..e9fb8994 100644 --- a/examples/run_to_completion.rs +++ b/examples/run_to_completion.rs @@ -1,4 +1,4 @@ -use faktory::WorkerBuilder; +use faktory::Worker; use std::io::Error as IOError; #[tokio::main] @@ -11,7 +11,7 @@ async fn main() { // - signal from the Faktory server; // - ctrl+c signal; // - worker panic; - WorkerBuilder::default() + Worker::builder() .register_fn("job_type", |j| async move { println!("{:?}", j); Ok::<(), IOError>(()) diff --git a/src/lib.rs b/src/lib.rs index ca415285..9203f624 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -76,7 +76,7 @@ mod worker; pub use crate::error::Error; pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect, WorkerId}; -pub use crate::worker::{channel, JobRunner, Message, Worker, WorkerBuilder}; +pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] diff --git a/src/worker/channel.rs b/src/worker/channel.rs deleted file mode 100644 index 373317aa..00000000 --- a/src/worker/channel.rs +++ /dev/null @@ -1,37 +0,0 @@ -#[cfg(doc)] -use super::{Worker, WorkerBuilder}; - -use tokio::sync::oneshot::{self, Receiver, Sender}; - -/// Message sent to running worker. -/// -/// See documentation to [`Worker::run`](Worker::run), -#[derive(Debug, Copy, Clone, PartialEq, Eq)] -#[non_exhaustive] -pub enum Message { - /// Ternimate the process with the provided status code. - /// - /// Analogue of hitting Ctrl+C in [`Worker::run_to_completion`]. - Exit(i32), - - /// Ternimate the process with the provided status code right away. - /// - /// Analogue of sending Ctrl+C signal twice on TTY. - /// Normally, though, you will want to use [`Message::Exit`], which allows for - /// graceful shutdown. - ExitNow(i32), - - /// Return control to the calling site after performing the clean-up logic. - ReturnControl, - - /// Return control to the calling site right away. - /// - /// Normally, though, you will want to use [`Message::ReturnControl`], which allows for - /// clean-up within the specified [`time-out`](WorkerBuilder::graceful_shutdown_period). - ReturnControlNow, -} - -/// Returns multiple producers and a singler consumer one-shot channel for a [`Message`]. -pub fn channel() -> (Sender, Receiver) { - oneshot::channel::() -} diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 8309e9b6..fb1c101d 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -7,19 +7,17 @@ use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::net::TcpStream; -use tokio::sync::oneshot::Receiver; use tokio::task::{AbortHandle, JoinSet}; use tokio::time::sleep as tokio_sleep; use tokio::time::Duration as TokioDuration; +use tokio_util::sync::CancellationToken; mod builder; -mod channel; mod health; mod runner; mod state; pub use builder::WorkerBuilder; -pub use channel::{channel, Message}; pub use runner::JobRunner; pub(crate) const STATUS_RUNNING: usize = 0; @@ -355,7 +353,8 @@ impl< } /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage or [`Message::ReturnControl`] is sent (`Ok` is returned). + /// until the server tells the worker to disengage (`Ok` is returned), or a signal from the user-space + /// code has been received via a cancellation token (`Ok` is returned). /// /// The value in an `Ok` indicates the number of workers that may still be processing jobs, but `0` can also /// indicate the [graceful shutdown period](WorkerBuilder::graceful_shutdown_period) has been exceeded. @@ -364,48 +363,57 @@ impl< /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. /// - /// In order to terminate the worker process for good (as opposed to returning control to your app), use [`Message::Exit`]. - /// /// ```no_run /// # tokio_test::block_on(async { - /// use faktory::{Client, Job, Message, WorkerBuilder, channel}; + /// use faktory::{Client, Job, Worker}; + /// use tokio_util::sync::CancellationToken; /// - /// let mut cl = Client::connect(None).await.unwrap(); - /// cl.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); + /// Client::connect(None) + /// .await + /// .unwrap() + /// .enqueue(Job::new("foobar", vec!["z"])) + /// .await + /// .unwrap(); /// - /// let mut w = WorkerBuilder::default() + /// let mut w = Worker::builder() /// .graceful_shutdown_period(5_000) /// .register_fn("foobar", |_j| async { Ok::<(), std::io::Error>(()) }) /// .connect(None).await.unwrap(); /// - /// let (tx, rx) = channel(); - /// let _handle = tokio::spawn(async move { w.run(&["qname"], Some(rx)).await }); - /// tx.send(Message::Exit(0)).expect("sent ok"); + /// let token = CancellationToken::new(); + /// let child_token = token.child_token(); + /// + /// let _handle = tokio::spawn(async move { w.run(&["qname"], Some(child_token)).await }); + /// + /// token.cancel(); /// # }); /// ``` /// - /// In case you have no intention to send termination signals, the example from above - /// can be layed out as follows: + /// In case you have no intention to send termination signals, just pass `None` as the second + /// argument of [`Worker::run`]. The modified example from above will look like so: /// ```no_run /// # tokio_test::block_on(async { - /// use faktory::{Client, Job, WorkerBuilder}; - /// - /// let mut cl = Client::connect(None).await.unwrap(); - /// cl.enqueue(Job::new("foobar", vec!["z"])).await.unwrap(); + /// use faktory::{Client, Job, Worker}; /// - /// let mut w = WorkerBuilder::default() - /// .register_fn("foobar", |_j| async { Ok::<(), std::io::Error>(()) }) - /// .connect(None) + /// Client::connect(None) + /// .await + /// .unwrap() + /// .enqueue(Job::new("foobar", vec!["z"])) /// .await /// .unwrap(); /// + /// let mut w = Worker::builder() + /// .graceful_shutdown_period(5_000) + /// .register_fn("foobar", |_j| async { Ok::<(), std::io::Error>(()) }) + /// .connect(None).await.unwrap(); + /// /// let _handle = tokio::spawn(async move { w.run(&["qname"], None).await }); /// # }); /// ``` pub async fn run( &mut self, queues: &[Q], - channel: Option>, + token: Option, ) -> Result where Q: AsRef, @@ -431,16 +439,16 @@ impl< } let report = tokio::select! { - // Signal SIGTERM received. + // A signal SIGTERM from the OS received. _ = tokio::signal::ctrl_c(), if self.forever => { - tracing::info!("SIGINT received, shutting down gracefully."); + tracing::info!("SIGINT received, shutting down gracefully..."); tokio::select! { _ = tokio::signal::ctrl_c() => { - tracing::info!("Another SIGINT received, exiting right now."); + tracing::info!("Another SIGINT received, exiting..."); process::exit(0); }, _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { - tracing::warn!("Graceful shutdown period of {}ms exceeded, exiting right now.", self.shutdown_timeout); + tracing::warn!("Graceful shutdown period of {}ms exceeded, exiting...", self.shutdown_timeout); process::exit(0); }, nrunning = self.force_fail_all_workers("SIGTERM received") => { @@ -449,24 +457,9 @@ impl< } } }, - // Message from user code received. - from_channel = async { let ch = channel.unwrap(); ch.await }, if channel.is_some() => { - if from_channel.is_err() { - tracing::info!("The sender dropped"); - process::exit(0); - } - let msg = from_channel.unwrap(); - if let Message::ExitNow(code) = msg { - tracing::info!("Received signal to immediately exit with status {}.", code); - process::exit(code); - } - if let Message::ReturnControlNow = msg { - tracing::info!("Received signal to immediately return control. Returning without clean-up."); - self.terminated = true; - return Ok(0); - } - - tracing::info!("Received termination signal: {:?}. Cleaning up...", msg); + // A signal from the user space received. + _ = async { let token = token.unwrap(); token.cancelled().await }, if token.is_some() => { + tracing::info!("Received termination signal via cancellation token. Cleaning up..."); let nrunning = tokio::select! { _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { @@ -478,16 +471,10 @@ impl< nrunning } }; - match msg { - Message::Exit(code) => process::exit(code), - Message::ReturnControl => { - self.terminated = true; - return Ok(nrunning); - }, - _ => unreachable!("ExitNow and ReturnControlNow variants are already handled above.") - } + self.terminated = true; + Ok(nrunning) }, - // Instruction from Faktory received or error occurred: + // A signal from the Faktory server received or an error occurred. exit = self.listen_for_heartbeats(&statuses) => { // there are a couple of cases here: // - we got TERMINATE, so we should just return, even if a worker is still running diff --git a/tests/real/community.rs b/tests/real/community.rs index b14b20d3..721adfa2 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -2,6 +2,7 @@ use crate::skip_check; use faktory::{Client, Job, JobBuilder, JobId, Worker, WorkerBuilder, WorkerId}; use serde_json::Value; use std::{io, sync}; +use tokio_util::sync::CancellationToken; #[tokio::test(flavor = "multi_thread")] async fn hello_client() { @@ -365,7 +366,6 @@ fn process_hard_task( #[tokio::test(flavor = "multi_thread")] async fn test_shutdown_signals_handling() { - use faktory::{channel, Message}; skip_check!(); let qname = "test_shutdown_signals_handling"; @@ -392,38 +392,17 @@ async fn test_shutdown_signals_handling() { .unwrap(); // start consuming - let (tx, rx) = channel(); - let jh = tokio::spawn(async move { w.run(&[qname], Some(rx)).await }); + let token = CancellationToken::new(); + let child_token = token.child_token(); + let jh = tokio::spawn(async move { w.run(&[qname], Some(child_token)).await }); // enqueue the job and wait for a message from the handler and ... cl.enqueue(j).await.unwrap(); rx_for_test_purposes.recv().await; // ... immediately signal to return control - tx.send(Message::ReturnControl).expect("sent ok"); + token.cancel(); // one worker was processing a task when we interrupted it let nrunning = jh.await.expect("joined ok").unwrap(); assert_eq!(nrunning, 1); - - // let's repeat the same actions with a little tweak: - // we will signal to return control right away. - let (tx, mut rx_for_test_purposes) = tokio::sync::mpsc::channel::(1); - let tx = sync::Arc::new(tx); - let mut w = WorkerBuilder::default() - .graceful_shutdown_period(shutdown_timeout) - .register_fn(jkind, process_hard_task(tx)) - .connect(None) - .await - .unwrap(); - let (tx, rx) = channel(); - let jh = tokio::spawn(async move { w.run(&[qname], Some(rx)).await }); - cl.enqueue(JobBuilder::new(jkind).queue(qname).args(vec![1000]).build()) - .await - .unwrap(); - rx_for_test_purposes.recv().await; - // signalling to yield immediately - tx.send(Message::ReturnControlNow).expect("sent ok"); - let nrunning = jh.await.expect("joined ok").unwrap(); - // we did not even have a change to examine the current workers state - assert_eq!(nrunning, 0); } From c7e8d7af8052657290e2e3c1ecd608723b2eaf6f Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 14 May 2024 14:44:24 +0500 Subject: [PATCH 130/175] Only leave required tokio features --- .gitignore | 1 - Cargo.toml | 13 +++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index bcddc769..0f735146 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ **/*.rs.bk perf.* .vscode -mutants.* diff --git a/Cargo.toml b/Cargo.toml index b9b54838..6519b376 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,14 +38,11 @@ serde_json = "1.0" sha2 = "0.10.0" thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ - "io-util", - "macros", - "net", - "rt", - "time", - "signal", - "rt-multi-thread", - "time", + "io-util", # enables `AsyncWriteExt`, `AsyncReadExt`, and `AsyncBufReadExt` in `tokio::io` namespace + "net", # enables `tokio::net` namespace with `TcpStream` we are heavily relying upon + "rt-multi-thread", # allows for `tokio::task::block_in_place()` in Client::drop + "signal", # allows us to listen for OS signal, e.g. "SIGTERM" + "time", # aenables `tokio::time` namespace holding the `sleep` utility and `Duraction` struct ] } tokio-native-tls = { version = "0.3.1", optional = true } tokio-rustls = { version = "0.25.0", optional = true } From 299e386c07d867a0ca1e23c5659af5ba6a742ff2 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 14 May 2024 14:49:57 +0500 Subject: [PATCH 131/175] Fix typo in comment in toml file --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6519b376..ecec8719 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,9 +40,9 @@ thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ "io-util", # enables `AsyncWriteExt`, `AsyncReadExt`, and `AsyncBufReadExt` in `tokio::io` namespace "net", # enables `tokio::net` namespace with `TcpStream` we are heavily relying upon - "rt-multi-thread", # allows for `tokio::task::block_in_place()` in Client::drop + "rt-multi-thread", # allows for `tokio::task::block_in_place()` in Client::drop "signal", # allows us to listen for OS signal, e.g. "SIGTERM" - "time", # aenables `tokio::time` namespace holding the `sleep` utility and `Duraction` struct + "time", # anables `tokio::time` namespace holding the `sleep` utility and `Duraction` struct ] } tokio-native-tls = { version = "0.3.1", optional = true } tokio-rustls = { version = "0.25.0", optional = true } From 4a6af8b6198347032c98280135dc256c2e5fea21 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 14 May 2024 15:01:08 +0500 Subject: [PATCH 132/175] Enable feature 'macros' on tokio --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index ecec8719..fc8e7e3c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,6 +39,7 @@ sha2 = "0.10.0" thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ "io-util", # enables `AsyncWriteExt`, `AsyncReadExt`, and `AsyncBufReadExt` in `tokio::io` namespace + "macros", # brings in `tokio::select!` we are utilizing in `Worker::run` "net", # enables `tokio::net` namespace with `TcpStream` we are heavily relying upon "rt-multi-thread", # allows for `tokio::task::block_in_place()` in Client::drop "signal", # allows us to listen for OS signal, e.g. "SIGTERM" From 789686588fe86e495ef1864125835a45517f6511 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 1 May 2024 00:43:52 +0500 Subject: [PATCH 133/175] Add support for blocking handlers --- src/worker/builder.rs | 28 ++++++++++++++++++++++++- src/worker/mod.rs | 20 +++++++++++++++--- tests/real/community.rs | 45 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 4 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 42f50af5..d53ccd0c 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -4,6 +4,7 @@ use crate::{ Error, Job, JobRunner, WorkerId, }; use std::future::Future; +use std::sync::Arc; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; @@ -120,6 +121,30 @@ impl WorkerBuilder { self.register(kind, Closure(handler)) } + /// Register a _blocking_ (synchronous) handler function for the given job type (`kind`). + /// + /// This is an analogue of [`register_fn`](WorkerBuilder::register_fn) for compute heavy tasks. + /// Internally, `tokio`'s `spawn_blocking` is used when a job arrives whose type matches `kind`, + /// and so the `handler` is executed in a dedicated pool for blocking operations. See `Tokio`'s + /// [docs](https://docs.rs/tokio/latest/tokio/index.html#cpu-bound-tasks-and-blocking-code) for + /// how to set the upper limit on the number of threads in the mentioned pool and other details. + /// + /// Note that it is not recommended to mix blocking and non-blocking tasks and so if many of your + /// handlers are blocking, you will want to launch a dedicated worker process (at least a separate + /// Tokio Runtime) where only blocking handlers will be used. + /// + /// Also note that only one single handler per job kind is supported. Registering another handler + /// for the same job kind will silently override the handler registered previously. + pub fn register_blocking_fn(mut self, kind: K, handler: H) -> Self + where + K: Into, + H: Fn(Job) -> Result<(), E> + Send + Sync + 'static, + { + self.callbacks + .insert(kind.into(), super::Callback::Sync(Arc::new(handler))); + self + } + /// Register a handler for the given job type (`kind`). /// /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler @@ -132,7 +157,8 @@ impl WorkerBuilder { K: Into, H: JobRunner + 'static, { - self.callbacks.insert(kind.into(), Box::new(runner)); + self.callbacks + .insert(kind.into(), super::Callback::Async(Box::new(runner))); self } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index fb1c101d..e07e054f 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -7,7 +7,7 @@ use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::net::TcpStream; -use tokio::task::{AbortHandle, JoinSet}; +use tokio::task::{spawn_blocking, AbortHandle, JoinSet}; use tokio::time::sleep as tokio_sleep; use tokio::time::Duration as TokioDuration; use tokio_util::sync::CancellationToken; @@ -24,7 +24,12 @@ pub(crate) const STATUS_RUNNING: usize = 0; pub(crate) const STATUS_QUIET: usize = 1; pub(crate) const STATUS_TERMINATING: usize = 2; -type CallbacksRegistry = FnvHashMap>; +pub(crate) enum Callback { + Async(runner::BoxedJobRunner), + Sync(Arc Result<(), E> + Sync + Send + 'static>), +} + +type CallbacksRegistry = FnvHashMap>; /// `Worker` is used to run a worker that processes jobs provided by Faktory. /// @@ -200,7 +205,16 @@ impl .callbacks .get(job.kind()) .ok_or(Failed::BadJobType(job.kind().to_string()))?; - handler.run(job).await.map_err(Failed::Application) + match handler { + Callback::Async(cb) => cb.run(job).await.map_err(Failed::Application), + Callback::Sync(cb) => { + let cb = Arc::clone(cb); + spawn_blocking(move || cb(job)) + .await + .expect("joined ok") + .map_err(Failed::Application) + } + } } async fn report_on_all_workers(&mut self) -> Result<(), Error> { diff --git a/tests/real/community.rs b/tests/real/community.rs index 721adfa2..a32ff7a3 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,6 +1,7 @@ use crate::skip_check; use faktory::{Client, Job, JobBuilder, JobId, Worker, WorkerBuilder, WorkerId}; use serde_json::Value; +use std::time::Duration; use std::{io, sync}; use tokio_util::sync::CancellationToken; @@ -406,3 +407,47 @@ async fn test_shutdown_signals_handling() { let nrunning = jh.await.expect("joined ok").unwrap(); assert_eq!(nrunning, 1); } + +// It is generally not ok to mix blocking and not blocking tasks, +// we are doing so in this test simply to demonstrate it is _possible_. +#[tokio::test(flavor = "multi_thread")] +async fn test_jobs_with_blocking_handlers() { + skip_check!(); + + let local = "test_jobs_with_blocking_handlers"; + + let mut w = Worker::builder() + .register_blocking_fn("cpu_intensive", |_j| { + // Imaging some compute heavy operations:serializing, sorting, matrix multiplication, etc. + std::thread::sleep(Duration::from_millis(1000)); + Ok::<(), io::Error>(()) + }) + .register_fn("io_intensive", |_j| async move { + // Imagine fetching data for this user from various origins, + // updating an entry on them in the database, and then sending them + // an email and pushing a follow-up task on the Faktory queue + Ok::<(), io::Error>(()) + }) + .register_fn( + "general_workload", + |_j| async move { Ok::<(), io::Error>(()) }, + ) + .connect(None) + .await + .unwrap(); + + Client::connect(None) + .await + .unwrap() + .enqueue_many([ + Job::builder("cpu_intensive").queue(local).build(), + Job::builder("io_intensive").queue(local).build(), + Job::builder("general_workload").queue(local).build(), + ]) + .await + .unwrap(); + + for _ in 0..2 { + assert!(w.run_one(0, &[local]).await.unwrap()); + } +} From 7865459af4fc1305445ba1c028abac3da97e1d6f Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 20 May 2024 12:42:28 +0400 Subject: [PATCH 134/175] Revert "Add support for blocking handlers" This reverts commit 789686588fe86e495ef1864125835a45517f6511. --- src/worker/builder.rs | 28 +------------------------ src/worker/mod.rs | 20 +++--------------- tests/real/community.rs | 45 ----------------------------------------- 3 files changed, 4 insertions(+), 89 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index d53ccd0c..42f50af5 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -4,7 +4,6 @@ use crate::{ Error, Job, JobRunner, WorkerId, }; use std::future::Future; -use std::sync::Arc; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; @@ -121,30 +120,6 @@ impl WorkerBuilder { self.register(kind, Closure(handler)) } - /// Register a _blocking_ (synchronous) handler function for the given job type (`kind`). - /// - /// This is an analogue of [`register_fn`](WorkerBuilder::register_fn) for compute heavy tasks. - /// Internally, `tokio`'s `spawn_blocking` is used when a job arrives whose type matches `kind`, - /// and so the `handler` is executed in a dedicated pool for blocking operations. See `Tokio`'s - /// [docs](https://docs.rs/tokio/latest/tokio/index.html#cpu-bound-tasks-and-blocking-code) for - /// how to set the upper limit on the number of threads in the mentioned pool and other details. - /// - /// Note that it is not recommended to mix blocking and non-blocking tasks and so if many of your - /// handlers are blocking, you will want to launch a dedicated worker process (at least a separate - /// Tokio Runtime) where only blocking handlers will be used. - /// - /// Also note that only one single handler per job kind is supported. Registering another handler - /// for the same job kind will silently override the handler registered previously. - pub fn register_blocking_fn(mut self, kind: K, handler: H) -> Self - where - K: Into, - H: Fn(Job) -> Result<(), E> + Send + Sync + 'static, - { - self.callbacks - .insert(kind.into(), super::Callback::Sync(Arc::new(handler))); - self - } - /// Register a handler for the given job type (`kind`). /// /// Whenever a job whose type matches `kind` is fetched from the Faktory, the given handler @@ -157,8 +132,7 @@ impl WorkerBuilder { K: Into, H: JobRunner + 'static, { - self.callbacks - .insert(kind.into(), super::Callback::Async(Box::new(runner))); + self.callbacks.insert(kind.into(), Box::new(runner)); self } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index e07e054f..fb1c101d 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -7,7 +7,7 @@ use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::net::TcpStream; -use tokio::task::{spawn_blocking, AbortHandle, JoinSet}; +use tokio::task::{AbortHandle, JoinSet}; use tokio::time::sleep as tokio_sleep; use tokio::time::Duration as TokioDuration; use tokio_util::sync::CancellationToken; @@ -24,12 +24,7 @@ pub(crate) const STATUS_RUNNING: usize = 0; pub(crate) const STATUS_QUIET: usize = 1; pub(crate) const STATUS_TERMINATING: usize = 2; -pub(crate) enum Callback { - Async(runner::BoxedJobRunner), - Sync(Arc Result<(), E> + Sync + Send + 'static>), -} - -type CallbacksRegistry = FnvHashMap>; +type CallbacksRegistry = FnvHashMap>; /// `Worker` is used to run a worker that processes jobs provided by Faktory. /// @@ -205,16 +200,7 @@ impl .callbacks .get(job.kind()) .ok_or(Failed::BadJobType(job.kind().to_string()))?; - match handler { - Callback::Async(cb) => cb.run(job).await.map_err(Failed::Application), - Callback::Sync(cb) => { - let cb = Arc::clone(cb); - spawn_blocking(move || cb(job)) - .await - .expect("joined ok") - .map_err(Failed::Application) - } - } + handler.run(job).await.map_err(Failed::Application) } async fn report_on_all_workers(&mut self) -> Result<(), Error> { diff --git a/tests/real/community.rs b/tests/real/community.rs index a32ff7a3..721adfa2 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,7 +1,6 @@ use crate::skip_check; use faktory::{Client, Job, JobBuilder, JobId, Worker, WorkerBuilder, WorkerId}; use serde_json::Value; -use std::time::Duration; use std::{io, sync}; use tokio_util::sync::CancellationToken; @@ -407,47 +406,3 @@ async fn test_shutdown_signals_handling() { let nrunning = jh.await.expect("joined ok").unwrap(); assert_eq!(nrunning, 1); } - -// It is generally not ok to mix blocking and not blocking tasks, -// we are doing so in this test simply to demonstrate it is _possible_. -#[tokio::test(flavor = "multi_thread")] -async fn test_jobs_with_blocking_handlers() { - skip_check!(); - - let local = "test_jobs_with_blocking_handlers"; - - let mut w = Worker::builder() - .register_blocking_fn("cpu_intensive", |_j| { - // Imaging some compute heavy operations:serializing, sorting, matrix multiplication, etc. - std::thread::sleep(Duration::from_millis(1000)); - Ok::<(), io::Error>(()) - }) - .register_fn("io_intensive", |_j| async move { - // Imagine fetching data for this user from various origins, - // updating an entry on them in the database, and then sending them - // an email and pushing a follow-up task on the Faktory queue - Ok::<(), io::Error>(()) - }) - .register_fn( - "general_workload", - |_j| async move { Ok::<(), io::Error>(()) }, - ) - .connect(None) - .await - .unwrap(); - - Client::connect(None) - .await - .unwrap() - .enqueue_many([ - Job::builder("cpu_intensive").queue(local).build(), - Job::builder("io_intensive").queue(local).build(), - Job::builder("general_workload").queue(local).build(), - ]) - .await - .unwrap(); - - for _ in 0..2 { - assert!(w.run_one(0, &[local]).await.unwrap()); - } -} From 7c523a65f2825ea659e057e00cb1748b4ef9dd3c Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 20 May 2024 16:35:48 +0400 Subject: [PATCH 135/175] Rm examples --- examples/run.rs | 42 ----------------------------------- examples/run_to_completion.rs | 24 -------------------- 2 files changed, 66 deletions(-) delete mode 100644 examples/run.rs delete mode 100644 examples/run_to_completion.rs diff --git a/examples/run.rs b/examples/run.rs deleted file mode 100644 index 34b1454c..00000000 --- a/examples/run.rs +++ /dev/null @@ -1,42 +0,0 @@ -use faktory::Worker; -use std::io::Error as IOError; -use tokio_util::sync::CancellationToken; - -#[tokio::main] -async fn main() { - tracing_subscriber::fmt::fmt() - .with_max_level(tracing::Level::TRACE) - .init(); - - // create a worker - let mut w = Worker::builder() - .graceful_shutdown_period(2_000) - .register_fn("job_type", |j| async move { - println!("{:?}", j); - Ok::<(), IOError>(()) - }) - .connect(None) - .await - .expect("Connected to server"); - - // create a cancellation token - let token = CancellationToken::new(); - - // create a child token and pass it to the spawned task (one could - alternatively - just - // clone the "parent" token) - let child_token = token.child_token(); - - let handle = tokio::spawn(async move { w.run(&["default"], Some(child_token)).await }); - - // cancel the task - token.cancel(); - - let nrunning = handle.await.expect("joined ok").expect("no worker errors"); - - // nrunng will be 0, since our workers are idle in this example: - // we are not pushing jobs to the Faktory server - tracing::info!( - "Number of workers that were running when the signal was sent: {}", - nrunning - ); -} diff --git a/examples/run_to_completion.rs b/examples/run_to_completion.rs deleted file mode 100644 index e9fb8994..00000000 --- a/examples/run_to_completion.rs +++ /dev/null @@ -1,24 +0,0 @@ -use faktory::Worker; -use std::io::Error as IOError; - -#[tokio::main] -async fn main() { - tracing_subscriber::fmt::fmt() - .with_max_level(tracing::Level::TRACE) - .init(); - - // this will terminate under one of the following conditions: - // - signal from the Faktory server; - // - ctrl+c signal; - // - worker panic; - Worker::builder() - .register_fn("job_type", |j| async move { - println!("{:?}", j); - Ok::<(), IOError>(()) - }) - .connect(None) - .await - .expect("Connected to server") - .run_to_completion(&["default"]) - .await -} From be480036e6b94f6f1a0200a565492cb4bb1be4bd Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 20 May 2024 16:38:50 +0400 Subject: [PATCH 136/175] Update README.md --- README.md | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/README.md b/README.md index f35e9ff8..30040e40 100644 --- a/README.md +++ b/README.md @@ -62,20 +62,8 @@ if let Err(e) = w.run(&["default"], None).await { } ``` -Also see some usage examples in `examples` directory in the project's root. You can run an example with: - -```bash -cargo run --example example_name -``` - -For instance, to run a `run_to_completion` example in release mode, hit: - -```bash -cargo run --example run_to_completion --release -``` -Make sure you've got Faktory server up-and-running. See [instructions](#run-test-suite-locally) on how to spin up Faktory locally. - ## Run test suite locally + First ensure the "Factory" service is running and accepting connections on your machine. To launch it a [Factory](https://hub.docker.com/r/contribsys/faktory/) container with [docker](https://docs.docker.com/engine/install/), run: From 4ce9d500b8380a97f48d6ecd4b47663b561957b3 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 20 May 2024 16:50:37 +0400 Subject: [PATCH 137/175] Rm tracing and examples that are now dedicated PR --- src/worker/health.rs | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/worker/health.rs b/src/worker/health.rs index 0c903796..47749123 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -8,8 +8,6 @@ use std::{ use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::time::sleep as tokio_sleep; -const CHECK_STATE_INTERVAL_MILLIS: u64 = 100; -const HEARTBEAT_INTERVAL_SECS: u64 = 5; impl Worker where S: AsyncBufRead + AsyncWrite + Send + Unpin, @@ -24,10 +22,6 @@ where /// but should _continue_ processing its current job (if any); /// /// See more details [here](https://github.com/contribsys/faktory/blob/b4a93227a3323ab4b1365b0c37c2fac4f9588cc8/server/workers.go#L13-L49). - /// - /// Note that this method is not cancellation safe. We are using an interval timer internally, that - /// would be reset should we call this method anew. Besides, the `Heartbeat` command is being issued - /// with the help of `AsyncWriteExt::write_all` which is not cancellation safe either. pub(crate) async fn listen_for_heartbeats( &mut self, statuses: &[Arc], @@ -37,14 +31,14 @@ where let mut last = time::Instant::now(); loop { - tokio_sleep(time::Duration::from_millis(CHECK_STATE_INTERVAL_MILLIS)).await; + tokio_sleep(time::Duration::from_millis(100)).await; // has a worker failed? - let worker_failure = target == STATUS_RUNNING + if target == STATUS_RUNNING && statuses .iter() - .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING); - if worker_failure { + .any(|s| s.load(atomic::Ordering::SeqCst) == STATUS_TERMINATING) + { // tell all workers to exit // (though chances are they've all failed already) for s in statuses { @@ -53,7 +47,7 @@ where break Ok(false); } - if last.elapsed().as_secs() < HEARTBEAT_INTERVAL_SECS { + if last.elapsed().as_secs() < 5 { // don't sent a heartbeat yet continue; } @@ -61,11 +55,8 @@ where match self.c.heartbeat().await { Ok(hb) => { match hb { - HeartbeatStatus::Ok => { - tracing::trace!("Faktory server HEARTBEAT status is OK."); - } + HeartbeatStatus::Ok => {} HeartbeatStatus::Quiet => { - tracing::trace!("Faktory server HEARTBEAT status is QUIET."); // tell the workers to eventually terminate for s in statuses { s.store(STATUS_QUIET, atomic::Ordering::SeqCst); @@ -73,7 +64,6 @@ where target = STATUS_QUIET; } HeartbeatStatus::Terminate => { - tracing::trace!("Faktory server HEARTBEAT status is TERMINATE."); // tell the workers to terminate // *and* fail the current job and immediately return for s in statuses { From 73b2580ef6a5fb9bd25b14d3ecffc9bd4c6e8408 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 20 May 2024 16:50:49 +0400 Subject: [PATCH 138/175] Rm tracing and examples that are now dedicated PR --- Cargo.lock | 106 ---------------------------------------------- Cargo.toml | 4 +- src/worker/mod.rs | 10 +---- 3 files changed, 2 insertions(+), 118 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1488ad50..21327cff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -447,8 +447,6 @@ dependencies = [ "tokio-rustls", "tokio-test", "tokio-util", - "tracing", - "tracing-subscriber", "url", "x509-parser", ] @@ -695,16 +693,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - [[package]] name = "num-bigint" version = "0.4.5" @@ -817,12 +805,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "percent-encoding" version = "2.3.1" @@ -1075,15 +1057,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -1093,12 +1066,6 @@ dependencies = [ "libc", ] -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - [[package]] name = "socket2" version = "0.5.7" @@ -1199,16 +1166,6 @@ dependencies = [ "syn 2.0.63", ] -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - [[package]] name = "time" version = "0.3.36" @@ -1342,63 +1299,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.63", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "nu-ansi-term", - "sharded-slab", - "smallvec", - "thread_local", - "tracing-core", - "tracing-log", -] - [[package]] name = "typenum" version = "1.17.0" @@ -1455,12 +1355,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - [[package]] name = "vcpkg" version = "0.2.15" diff --git a/Cargo.toml b/Cargo.toml index fc8e7e3c..c1b32184 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,15 +47,13 @@ tokio = { version = "1.35.1", features = [ ] } tokio-native-tls = { version = "0.3.1", optional = true } tokio-rustls = { version = "0.25.0", optional = true } -tracing = "0.1" -url = "2" tokio-util = "0.7.11" +url = "2" [dev-dependencies] rustls-pki-types = "1.0.1" tokio = { version = "1.35.1", features = ["rt", "macros"] } tokio-test = "0.4.3" -tracing-subscriber = "0.3.18" x509-parser = "0.15.1" # to make -Zminimal-versions work diff --git a/src/worker/mod.rs b/src/worker/mod.rs index fb1c101d..426e0182 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -441,33 +441,25 @@ impl< let report = tokio::select! { // A signal SIGTERM from the OS received. _ = tokio::signal::ctrl_c(), if self.forever => { - tracing::info!("SIGINT received, shutting down gracefully..."); tokio::select! { _ = tokio::signal::ctrl_c() => { - tracing::info!("Another SIGINT received, exiting..."); process::exit(0); }, _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { - tracing::warn!("Graceful shutdown period of {}ms exceeded, exiting...", self.shutdown_timeout); process::exit(0); }, - nrunning = self.force_fail_all_workers("SIGTERM received") => { - tracing::info!("Number of workers that were still running: {}.", nrunning); + _nrunning = self.force_fail_all_workers("SIGTERM received") => { process::exit(0); } } }, // A signal from the user space received. _ = async { let token = token.unwrap(); token.cancelled().await }, if token.is_some() => { - tracing::info!("Received termination signal via cancellation token. Cleaning up..."); - let nrunning = tokio::select! { _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { - tracing::warn!("Graceful shutdown period of {}ms exceeded.", self.shutdown_timeout); 0 }, nrunning = self.force_fail_all_workers("termination signal received over channel") => { - tracing::info!("Number of workers that were still running: {}.", nrunning); nrunning } }; From 96e3f2c9fbeb262eff76997ac83b7558790189b9 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 21 May 2024 19:31:27 +0400 Subject: [PATCH 139/175] Add WorkerBuilder::with_graceful_shutdown --- Cargo.toml | 2 +- src/lib.rs | 6 +++--- src/worker/builder.rs | 18 +++++++++++++++++- src/worker/mod.rs | 26 +++++++++++++++----------- src/worker/runner.rs | 2 +- tests/consumer.rs | 8 ++++---- tests/real/community.rs | 10 +++++++--- 7 files changed, 48 insertions(+), 24 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c1b32184..b9fc00d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,13 +47,13 @@ tokio = { version = "1.35.1", features = [ ] } tokio-native-tls = { version = "0.3.1", optional = true } tokio-rustls = { version = "0.25.0", optional = true } -tokio-util = "0.7.11" url = "2" [dev-dependencies] rustls-pki-types = "1.0.1" tokio = { version = "1.35.1", features = ["rt", "macros"] } tokio-test = "0.4.3" +tokio-util = "0.7.11" x509-parser = "0.15.1" # to make -Zminimal-versions work diff --git a/src/lib.rs b/src/lib.rs index 9203f624..55cacef8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -48,16 +48,16 @@ //! //! ```no_run //! # tokio_test::block_on(async { -//! use faktory::WorkerBuilder; +//! use faktory::Worker; //! use std::io; -//! let mut w = WorkerBuilder::default() +//! let mut w = Worker::builder() //! .register_fn("foobar", |job| async move { //! println!("{:?}", job); //! Ok::<(), io::Error>(()) //! }) //! .connect(None).await.unwrap(); //! -//! if let Err(e) = w.run(&["default"], None).await { +//! if let Err(e) = w.run(&["default"]).await { //! println!("worker failed: {}", e); //! } //! # }); diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 42f50af5..716d6cd0 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -1,4 +1,4 @@ -use super::{runner::Closure, CallbacksRegistry, Client, Worker}; +use super::{runner::Closure, CallbacksRegistry, Client, ShutdownSignal, Worker}; use crate::{ proto::{utils, ClientOptions}, Error, Job, JobRunner, WorkerId, @@ -17,6 +17,7 @@ pub struct WorkerBuilder { workers_count: usize, callbacks: CallbacksRegistry, shutdown_timeout: u64, + shutdown_signal: Option, } impl Default for WorkerBuilder { @@ -36,6 +37,7 @@ impl Default for WorkerBuilder { workers_count: 1, callbacks: CallbacksRegistry::default(), shutdown_timeout: GRACEFUL_SHUTDOWN_PERIOD_MILLIS, + shutdown_signal: None, } } } @@ -94,6 +96,19 @@ impl WorkerBuilder { self } + /// Set a graceful shutdown signal. + /// + /// As soon as the provided future resolves, the graceful shutdown will + /// step in making the [`Worker::run`] operation return control to the calling + /// code. + pub fn with_graceful_shutdown(mut self, signal: F) -> Self + where + F: Future + 'static + Send, + { + self.shutdown_signal = Some(Box::pin(signal)); + self + } + /// Set the graceful shutdown period in milliseconds. Defaults to 5000. /// /// This will be used once the worker is sent a termination signal whether @@ -151,6 +166,7 @@ impl WorkerBuilder { self.workers_count, self.callbacks, self.shutdown_timeout, + self.shutdown_signal, ) .await) } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 426e0182..c2e039e8 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -2,6 +2,8 @@ use super::proto::{Client, Reconnect}; use crate::error::Error; use crate::proto::{Ack, Fail, Job}; use fnv::FnvHashMap; +use std::future::Future; +use std::pin::Pin; use std::process; use std::sync::{atomic, Arc}; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; @@ -10,7 +12,6 @@ use tokio::net::TcpStream; use tokio::task::{AbortHandle, JoinSet}; use tokio::time::sleep as tokio_sleep; use tokio::time::Duration as TokioDuration; -use tokio_util::sync::CancellationToken; mod builder; mod health; @@ -25,6 +26,7 @@ pub(crate) const STATUS_QUIET: usize = 1; pub(crate) const STATUS_TERMINATING: usize = 2; type CallbacksRegistry = FnvHashMap>; +type ShutdownSignal = Pin + 'static + Send>>; /// `Worker` is used to run a worker that processes jobs provided by Faktory. /// @@ -121,7 +123,7 @@ type CallbacksRegistry = FnvHashMap>; /// .await /// .unwrap(); /// -/// if let Err(e) = w.run(&["default"], None).await { +/// if let Err(e) = w.run(&["default"]).await { /// println!("worker failed: {}", e); /// } /// # }); @@ -154,6 +156,7 @@ pub struct Worker { terminated: bool, forever: bool, shutdown_timeout: u64, + shutdown_signal: Option, } impl Worker { @@ -177,6 +180,7 @@ impl Worker { workers_count: usize, callbacks: CallbacksRegistry, shutdown_timeout: u64, + shutdown_signal: Option, ) -> Self { Worker { c, @@ -185,6 +189,7 @@ impl Worker { terminated: false, forever: false, shutdown_timeout, + shutdown_signal, } } } @@ -325,6 +330,7 @@ impl< terminated: self.terminated, forever: self.forever, shutdown_timeout: self.shutdown_timeout, + shutdown_signal: None, }) } @@ -383,7 +389,7 @@ impl< /// let token = CancellationToken::new(); /// let child_token = token.child_token(); /// - /// let _handle = tokio::spawn(async move { w.run(&["qname"], Some(child_token)).await }); + /// let _handle = tokio::spawn(async move { w.run(&["qname"]).await }); /// /// token.cancel(); /// # }); @@ -407,14 +413,10 @@ impl< /// .register_fn("foobar", |_j| async { Ok::<(), std::io::Error>(()) }) /// .connect(None).await.unwrap(); /// - /// let _handle = tokio::spawn(async move { w.run(&["qname"], None).await }); + /// let _handle = tokio::spawn(async move { w.run(&["qname"]).await }); /// # }); /// ``` - pub async fn run( - &mut self, - queues: &[Q], - token: Option, - ) -> Result + pub async fn run(&mut self, queues: &[Q]) -> Result where Q: AsRef, { @@ -438,6 +440,8 @@ impl< .await?; } + let signal = self.shutdown_signal.take(); + let report = tokio::select! { // A signal SIGTERM from the OS received. _ = tokio::signal::ctrl_c(), if self.forever => { @@ -454,7 +458,7 @@ impl< } }, // A signal from the user space received. - _ = async { let token = token.unwrap(); token.cancelled().await }, if token.is_some() => { + _ = async { let signal = signal.unwrap(); signal.await }, if signal.is_some() => { let nrunning = tokio::select! { _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { 0 @@ -506,7 +510,7 @@ impl< Q: AsRef, { self.forever = true; - while self.run(queues, None).await.is_err() { + while self.run(queues).await.is_err() { if self.reconnect().await.is_err() { break; } diff --git a/src/worker/runner.rs b/src/worker/runner.rs index 7ecb0cc3..caf7030a 100644 --- a/src/worker/runner.rs +++ b/src/worker/runner.rs @@ -42,7 +42,7 @@ use std::future::Future; /// .await /// .unwrap(); /// -/// if let Err(e) = w.run(&["default"], None).await { +/// if let Err(e) = w.run(&["default"]).await { /// println!("worker failed: {}", e); /// } /// }); diff --git a/tests/consumer.rs b/tests/consumer.rs index 923dbfe2..5fed5a54 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -245,7 +245,7 @@ async fn well_behaved() { }\r\n", ); - let jh = spawn(async move { w.run(&["default"], None).await }); + let jh = spawn(async move { w.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -312,7 +312,7 @@ async fn no_first_job() { }\r\n", ); - let jh = spawn(async move { w.run(&["default"], None).await }); + let jh = spawn(async move { w.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -388,7 +388,7 @@ async fn well_behaved_many() { ); } - let jh = spawn(async move { w.run(&["default"], None).await }); + let jh = spawn(async move { w.run(&["default"]).await }); // the running thread won't return for a while. the heartbeat thingy is going to eventually // send a heartbeat, and we want to respond to that with a "quiet" to make it not accept any @@ -478,7 +478,7 @@ async fn terminate() { // will be incremented from `1` to `2`. But, most importently, `mine` will now be pointing to the second // stream (stream with index 1) from this test, and the _actual_ worker (not the master worker (coordinator)) will // be talking via this stream. - w.run(&["default"], None).await + w.run(&["default"]).await }); // the running thread won't ever return, because the job never exits. the heartbeat thingy is diff --git a/tests/real/community.rs b/tests/real/community.rs index 721adfa2..8bb6360b 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -383,8 +383,13 @@ async fn test_shutdown_signals_handling() { let (tx, mut rx_for_test_purposes) = tokio::sync::mpsc::channel::(1); let tx = sync::Arc::new(tx); + // create + let token = CancellationToken::new(); + let child_token = token.child_token(); + // get a connected worker let mut w = WorkerBuilder::default() + .with_graceful_shutdown(async move { child_token.cancelled().await }) .graceful_shutdown_period(shutdown_timeout) .register_fn(jkind, process_hard_task(tx)) .connect(None) @@ -392,13 +397,12 @@ async fn test_shutdown_signals_handling() { .unwrap(); // start consuming - let token = CancellationToken::new(); - let child_token = token.child_token(); - let jh = tokio::spawn(async move { w.run(&[qname], Some(child_token)).await }); + let jh = tokio::spawn(async move { w.run(&[qname]).await }); // enqueue the job and wait for a message from the handler and ... cl.enqueue(j).await.unwrap(); rx_for_test_purposes.recv().await; + // ... immediately signal to return control token.cancel(); From e59e2ec9f9988d5cdeef0cccc2d248ec1961caf5 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 21 May 2024 21:33:52 +0400 Subject: [PATCH 140/175] Update docs --- src/worker/builder.rs | 50 +++++++++++++++++++++++++++++++----- src/worker/mod.rs | 56 ++++------------------------------------- tests/real/community.rs | 7 ++++-- 3 files changed, 54 insertions(+), 59 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 716d6cd0..a2e32cee 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -98,9 +98,47 @@ impl WorkerBuilder { /// Set a graceful shutdown signal. /// - /// As soon as the provided future resolves, the graceful shutdown will - /// step in making the [`Worker::run`] operation return control to the calling - /// code. + /// As soon as the provided future resolves, the graceful shutdown will step in + /// making the [`Worker::run`] operation return control to the calling code. + /// In case of the [`Worker::run_to_completion`] operation, the process will be exited + /// upon gracefull shutdown. + /// + /// The graceful shutdown itself is a race between the clean up needed to be performed + /// (e.g. report on the currently processed to the Faktory server) and a shutdown deadline. + /// The latter can be customized via [`WorkerBuilder::graceful_shutdown_period`]. + /// + /// ```no_run + /// # tokio_test::block_on(async { + /// use faktory::{Client, Job, Worker}; + /// use tokio_util::sync::CancellationToken; + /// + /// Client::connect(None) + /// .await + /// .unwrap() + /// .enqueue(Job::new("foobar", vec!["z"])) + /// .await + /// .unwrap(); + /// + /// // create a signalling future (we are using a utility from the `tokio_util` crate) + /// let token = CancellationToken::new(); + /// let child_token = token.child_token(); + /// let signal = async move { child_token.cancelled().await }; + /// + /// // get a connected worker + /// let mut w = Worker::builder() + /// .with_graceful_shutdown(signal) + /// .register_fn("job_type", move |_| async { Ok::<(), std::io::Error>(()) }) + /// .connect(None) + /// .await + /// .unwrap(); + /// + /// // start consuming + /// let jh = tokio::spawn(async move { w.run(&["default"]).await }); + /// + /// // send a signal to eventually return control (upon graceful shutdown) + /// token.cancel(); + /// # }); + /// ``` pub fn with_graceful_shutdown(mut self, signal: F) -> Self where F: Future + 'static + Send, @@ -111,9 +149,9 @@ impl WorkerBuilder { /// Set the graceful shutdown period in milliseconds. Defaults to 5000. /// - /// This will be used once the worker is sent a termination signal whether - /// it is at the application (see [`Worker::run`](Worker::run)) or OS level - /// (via Ctrl-C signal, see docs for [`Worker::run_to_completion`](Worker::run_to_completion)). + /// This will be used once the worker is sent a termination signal whether it is at the application + /// (via a signalling future, see [`WorkerBuilder::with_graceful_shutdown`]) or OS level (via Ctrl-C signal, + /// see [`Worker::run_to_completion`]). pub fn graceful_shutdown_period(mut self, millis: u64) -> Self { self.shutdown_timeout = millis; self diff --git a/src/worker/mod.rs b/src/worker/mod.rs index c2e039e8..ea9f395c 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -358,9 +358,11 @@ impl< })) } - /// Run this worker on the given `queues` until an I/O error occurs (`Err` is returned), or - /// until the server tells the worker to disengage (`Ok` is returned), or a signal from the user-space - /// code has been received via a cancellation token (`Ok` is returned). + /// Run this worker on the given `queues`. + /// + /// Will run the worker until an I/O error occurs (`Err` is returned), or until the server tells the worker + /// to disengage (`Ok` is returned), or a signal from the user-space code has been received via a future + /// supplied to [`WorkerBuilder::with_graceful_shutdown`](`Ok` is returned). /// /// The value in an `Ok` indicates the number of workers that may still be processing jobs, but `0` can also /// indicate the [graceful shutdown period](WorkerBuilder::graceful_shutdown_period) has been exceeded. @@ -368,54 +370,6 @@ impl< /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - /// - /// ```no_run - /// # tokio_test::block_on(async { - /// use faktory::{Client, Job, Worker}; - /// use tokio_util::sync::CancellationToken; - /// - /// Client::connect(None) - /// .await - /// .unwrap() - /// .enqueue(Job::new("foobar", vec!["z"])) - /// .await - /// .unwrap(); - /// - /// let mut w = Worker::builder() - /// .graceful_shutdown_period(5_000) - /// .register_fn("foobar", |_j| async { Ok::<(), std::io::Error>(()) }) - /// .connect(None).await.unwrap(); - /// - /// let token = CancellationToken::new(); - /// let child_token = token.child_token(); - /// - /// let _handle = tokio::spawn(async move { w.run(&["qname"]).await }); - /// - /// token.cancel(); - /// # }); - /// ``` - /// - /// In case you have no intention to send termination signals, just pass `None` as the second - /// argument of [`Worker::run`]. The modified example from above will look like so: - /// ```no_run - /// # tokio_test::block_on(async { - /// use faktory::{Client, Job, Worker}; - /// - /// Client::connect(None) - /// .await - /// .unwrap() - /// .enqueue(Job::new("foobar", vec!["z"])) - /// .await - /// .unwrap(); - /// - /// let mut w = Worker::builder() - /// .graceful_shutdown_period(5_000) - /// .register_fn("foobar", |_j| async { Ok::<(), std::io::Error>(()) }) - /// .connect(None).await.unwrap(); - /// - /// let _handle = tokio::spawn(async move { w.run(&["qname"]).await }); - /// # }); - /// ``` pub async fn run(&mut self, queues: &[Q]) -> Result where Q: AsRef, diff --git a/tests/real/community.rs b/tests/real/community.rs index 8bb6360b..5cfba99b 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -383,13 +383,16 @@ async fn test_shutdown_signals_handling() { let (tx, mut rx_for_test_purposes) = tokio::sync::mpsc::channel::(1); let tx = sync::Arc::new(tx); - // create + // create a token let token = CancellationToken::new(); let child_token = token.child_token(); + // create a signalling future + let signal = async move { child_token.cancelled().await }; + // get a connected worker let mut w = WorkerBuilder::default() - .with_graceful_shutdown(async move { child_token.cancelled().await }) + .with_graceful_shutdown(signal) .graceful_shutdown_period(shutdown_timeout) .register_fn(jkind, process_hard_task(tx)) .connect(None) From 834076743f6da6ecd8e26939ab8de9fcd2a16e92 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 21 May 2024 21:35:02 +0400 Subject: [PATCH 141/175] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 30040e40..c5eae769 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ w.register("foobar", |job| async move { Ok::<(), io::Error>(()) }); let mut w = w.connect(None).await.unwrap(); -if let Err(e) = w.run(&["default"], None).await { +if let Err(e) = w.run(&["default"]).await { println!("worker failed: {}", e); } ``` From 6093201848b9795bb3d68bf72e7d2c19c4b2f0fa Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 24 May 2024 09:29:32 +0400 Subject: [PATCH 142/175] Only hadnle cancellation future for non-forever runs --- src/worker/builder.rs | 4 +--- src/worker/mod.rs | 13 ++++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index a2e32cee..ebc91915 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -99,9 +99,7 @@ impl WorkerBuilder { /// Set a graceful shutdown signal. /// /// As soon as the provided future resolves, the graceful shutdown will step in - /// making the [`Worker::run`] operation return control to the calling code. - /// In case of the [`Worker::run_to_completion`] operation, the process will be exited - /// upon gracefull shutdown. + /// making the long-running operation (see [`Worker::run`]) return control to the calling code. /// /// The graceful shutdown itself is a race between the clean up needed to be performed /// (e.g. report on the currently processed to the Faktory server) and a shutdown deadline. diff --git a/src/worker/mod.rs b/src/worker/mod.rs index ea9f395c..2741e8dd 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -394,7 +394,14 @@ impl< .await?; } - let signal = self.shutdown_signal.take(); + // for "forever" operations (currently only `Worker::run_to_completion`) we support SIGTERM handling, + // whereas for long-running operations (see `Worker::run`), we are polling the cancellation future which + // serves as a signal to start graceful shutdowna and return control to the calling site + let cancel_signal = if self.forever { + None + } else { + self.shutdown_signal.take() + }; let report = tokio::select! { // A signal SIGTERM from the OS received. @@ -412,7 +419,7 @@ impl< } }, // A signal from the user space received. - _ = async { let signal = signal.unwrap(); signal.await }, if signal.is_some() => { + _ = async { let signal = cancel_signal.unwrap(); signal.await }, if cancel_signal.is_some() => { let nrunning = tokio::select! { _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { 0 @@ -457,7 +464,7 @@ impl< /// Run this worker until the server tells us to exit or a connection cannot be re-established. /// - /// This function never returns. When the worker decides to exit or SIGTERM is received, + /// This function never returns. When the worker decides to exit or `SIGTERM` is received, /// the process is terminated within the [shutdown period](WorkerBuilder::graceful_shutdown_period). pub async fn run_to_completion(mut self, queues: &[Q]) -> ! where From 6e9a150f23029671abb295e124943c736d724abf Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 26 May 2024 11:35:32 +0400 Subject: [PATCH 143/175] Add note on cancel (un)safety to Worker::lesten_for_heartbeats --- src/worker/health.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/worker/health.rs b/src/worker/health.rs index 47749123..cbe45609 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -22,6 +22,10 @@ where /// but should _continue_ processing its current job (if any); /// /// See more details [here](https://github.com/contribsys/faktory/blob/b4a93227a3323ab4b1365b0c37c2fac4f9588cc8/server/workers.go#L13-L49). + /// + /// Note that this method is not cancellation safe. We are using an interval timer internally, that + /// would be reset should we call this method anew. Besides, the `Heartbeat` command is being issued + /// with the help of `AsyncWriteExt::write_all` which is not cancellation safe either. pub(crate) async fn listen_for_heartbeats( &mut self, statuses: &[Arc], From a50300cc79511a74db87c6f8a0b6aa1db784e441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Wed, 29 May 2024 11:21:57 +0400 Subject: [PATCH 144/175] Update src/worker/builder.rs Co-authored-by: Jon Gjengset --- src/worker/builder.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index ebc91915..03addcc3 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -7,7 +7,7 @@ use std::future::Future; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; -pub(crate) const GRACEFUL_SHUTDOWN_PERIOD_MILLIS: u64 = 5_000; +pub(crate) const GRACEFUL_SHUTDOWN_PERIOD: Duration = Duration::from_secs(5); /// Convenience wrapper for building a Faktory worker. /// From 397b4c42b3e59dfe04306c4ee105d85ca2c05618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Wed, 29 May 2024 11:23:59 +0400 Subject: [PATCH 145/175] Update src/worker/mod.rs Co-authored-by: Jon Gjengset --- src/worker/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 2741e8dd..6968b4bd 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -155,7 +155,7 @@ pub struct Worker { callbacks: Arc>, terminated: bool, forever: bool, - shutdown_timeout: u64, + shutdown_timeout: Duration, shutdown_signal: Option, } From 42e3bbdc193c4c002efc3f8d6a1053c72a61f19f Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 29 May 2024 11:37:38 +0400 Subject: [PATCH 146/175] Use Duration for graceful shutdown period --- src/worker/builder.rs | 9 +++++---- src/worker/mod.rs | 8 ++++---- tests/real/community.rs | 3 ++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 03addcc3..60d4a4c1 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -4,6 +4,7 @@ use crate::{ Error, Job, JobRunner, WorkerId, }; use std::future::Future; +use std::time::Duration; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; @@ -16,7 +17,7 @@ pub struct WorkerBuilder { opts: ClientOptions, workers_count: usize, callbacks: CallbacksRegistry, - shutdown_timeout: u64, + shutdown_timeout: Duration, shutdown_signal: Option, } @@ -36,7 +37,7 @@ impl Default for WorkerBuilder { opts: ClientOptions::default(), workers_count: 1, callbacks: CallbacksRegistry::default(), - shutdown_timeout: GRACEFUL_SHUTDOWN_PERIOD_MILLIS, + shutdown_timeout: GRACEFUL_SHUTDOWN_PERIOD, shutdown_signal: None, } } @@ -150,8 +151,8 @@ impl WorkerBuilder { /// This will be used once the worker is sent a termination signal whether it is at the application /// (via a signalling future, see [`WorkerBuilder::with_graceful_shutdown`]) or OS level (via Ctrl-C signal, /// see [`Worker::run_to_completion`]). - pub fn graceful_shutdown_period(mut self, millis: u64) -> Self { - self.shutdown_timeout = millis; + pub fn graceful_shutdown_period(mut self, dur: Duration) -> Self { + self.shutdown_timeout = dur; self } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 6968b4bd..11505b5c 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -6,12 +6,12 @@ use std::future::Future; use std::pin::Pin; use std::process; use std::sync::{atomic, Arc}; +use std::time::Duration; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::net::TcpStream; use tokio::task::{AbortHandle, JoinSet}; use tokio::time::sleep as tokio_sleep; -use tokio::time::Duration as TokioDuration; mod builder; mod health; @@ -179,7 +179,7 @@ impl Worker { c: Client, workers_count: usize, callbacks: CallbacksRegistry, - shutdown_timeout: u64, + shutdown_timeout: Duration, shutdown_signal: Option, ) -> Self { Worker { @@ -410,7 +410,7 @@ impl< _ = tokio::signal::ctrl_c() => { process::exit(0); }, - _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { + _ = tokio_sleep(self.shutdown_timeout) => { process::exit(0); }, _nrunning = self.force_fail_all_workers("SIGTERM received") => { @@ -421,7 +421,7 @@ impl< // A signal from the user space received. _ = async { let signal = cancel_signal.unwrap(); signal.await }, if cancel_signal.is_some() => { let nrunning = tokio::select! { - _ = tokio_sleep(TokioDuration::from_millis(self.shutdown_timeout)) => { + _ = tokio_sleep(self.shutdown_timeout) => { 0 }, nrunning = self.force_fail_all_workers("termination signal received over channel") => { diff --git a/tests/real/community.rs b/tests/real/community.rs index 5cfba99b..a497dff8 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,6 +1,7 @@ use crate::skip_check; use faktory::{Client, Job, JobBuilder, JobId, Worker, WorkerBuilder, WorkerId}; use serde_json::Value; +use std::time::Duration; use std::{io, sync}; use tokio_util::sync::CancellationToken; @@ -370,7 +371,7 @@ async fn test_shutdown_signals_handling() { let qname = "test_shutdown_signals_handling"; let jkind = "heavy"; - let shutdown_timeout = 500; + let shutdown_timeout = Duration::from_millis(500); // get a client and a job to enqueue let mut cl = Client::connect(None).await.unwrap(); From 8c2d0542f1711faaf187432146c0ba7de41ac398 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Wed, 29 May 2024 12:40:23 +0400 Subject: [PATCH 147/175] Use no shutdown timeout by default --- src/worker/builder.rs | 16 ++++++++-------- src/worker/mod.rs | 16 ++++++++++------ tests/real/community.rs | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 60d4a4c1..75d82576 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -8,8 +8,6 @@ use std::time::Duration; use tokio::io::{AsyncRead, AsyncWrite, BufStream}; use tokio::net::TcpStream as TokioStream; -pub(crate) const GRACEFUL_SHUTDOWN_PERIOD: Duration = Duration::from_secs(5); - /// Convenience wrapper for building a Faktory worker. /// /// See the [`Worker`] documentation for details. @@ -17,7 +15,7 @@ pub struct WorkerBuilder { opts: ClientOptions, workers_count: usize, callbacks: CallbacksRegistry, - shutdown_timeout: Duration, + shutdown_timeout: Option, shutdown_signal: Option, } @@ -37,7 +35,7 @@ impl Default for WorkerBuilder { opts: ClientOptions::default(), workers_count: 1, callbacks: CallbacksRegistry::default(), - shutdown_timeout: GRACEFUL_SHUTDOWN_PERIOD, + shutdown_timeout: None, shutdown_signal: None, } } @@ -104,7 +102,7 @@ impl WorkerBuilder { /// /// The graceful shutdown itself is a race between the clean up needed to be performed /// (e.g. report on the currently processed to the Faktory server) and a shutdown deadline. - /// The latter can be customized via [`WorkerBuilder::graceful_shutdown_period`]. + /// The latter can be customized via [`WorkerBuilder::shutdown_timeout`]. /// /// ```no_run /// # tokio_test::block_on(async { @@ -146,13 +144,15 @@ impl WorkerBuilder { self } - /// Set the graceful shutdown period in milliseconds. Defaults to 5000. + /// Set a shutdown timeout. /// /// This will be used once the worker is sent a termination signal whether it is at the application /// (via a signalling future, see [`WorkerBuilder::with_graceful_shutdown`]) or OS level (via Ctrl-C signal, /// see [`Worker::run_to_completion`]). - pub fn graceful_shutdown_period(mut self, dur: Duration) -> Self { - self.shutdown_timeout = dur; + /// + /// Defaults to `None`, i.e. no shoutdown abortion due to a timeout. + pub fn shutdown_timeout(mut self, dur: Duration) -> Self { + self.shutdown_timeout = Some(dur); self } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 11505b5c..63351005 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -155,7 +155,7 @@ pub struct Worker { callbacks: Arc>, terminated: bool, forever: bool, - shutdown_timeout: Duration, + shutdown_timeout: Option, shutdown_signal: Option, } @@ -179,7 +179,7 @@ impl Worker { c: Client, workers_count: usize, callbacks: CallbacksRegistry, - shutdown_timeout: Duration, + shutdown_timeout: Option, shutdown_signal: Option, ) -> Self { Worker { @@ -365,7 +365,7 @@ impl< /// supplied to [`WorkerBuilder::with_graceful_shutdown`](`Ok` is returned). /// /// The value in an `Ok` indicates the number of workers that may still be processing jobs, but `0` can also - /// indicate the [graceful shutdown period](WorkerBuilder::graceful_shutdown_period) has been exceeded. + /// indicate the [graceful shutdown period](WorkerBuilder::shutdown_timeout) has been exceeded. /// /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), @@ -403,6 +403,10 @@ impl< self.shutdown_signal.take() }; + // it is OK to `take` it here, since we are either making the process exit, + // or marking the main `worker` as `terminated` and so it cannot be re-used + let timeout = self.shutdown_timeout.take(); + let report = tokio::select! { // A signal SIGTERM from the OS received. _ = tokio::signal::ctrl_c(), if self.forever => { @@ -410,7 +414,7 @@ impl< _ = tokio::signal::ctrl_c() => { process::exit(0); }, - _ = tokio_sleep(self.shutdown_timeout) => { + _ = tokio_sleep(timeout.unwrap()), if timeout.is_some() => { process::exit(0); }, _nrunning = self.force_fail_all_workers("SIGTERM received") => { @@ -421,7 +425,7 @@ impl< // A signal from the user space received. _ = async { let signal = cancel_signal.unwrap(); signal.await }, if cancel_signal.is_some() => { let nrunning = tokio::select! { - _ = tokio_sleep(self.shutdown_timeout) => { + _ = tokio_sleep(timeout.unwrap()), if timeout.is_some() => { 0 }, nrunning = self.force_fail_all_workers("termination signal received over channel") => { @@ -465,7 +469,7 @@ impl< /// Run this worker until the server tells us to exit or a connection cannot be re-established. /// /// This function never returns. When the worker decides to exit or `SIGTERM` is received, - /// the process is terminated within the [shutdown period](WorkerBuilder::graceful_shutdown_period). + /// the process is terminated within the [shutdown period](WorkerBuilder::shutdown_timeout). pub async fn run_to_completion(mut self, queues: &[Q]) -> ! where Q: AsRef, diff --git a/tests/real/community.rs b/tests/real/community.rs index a497dff8..57cb9e04 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -394,7 +394,7 @@ async fn test_shutdown_signals_handling() { // get a connected worker let mut w = WorkerBuilder::default() .with_graceful_shutdown(signal) - .graceful_shutdown_period(shutdown_timeout) + .shutdown_timeout(shutdown_timeout) .register_fn(jkind, process_hard_task(tx)) .connect(None) .await From 2c44785b34f54fcc278f9533a59bbb29393c3b55 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 30 May 2024 09:16:54 +0400 Subject: [PATCH 148/175] Rollback docs changes with Worker::builer --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 55cacef8..6f702741 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -48,9 +48,9 @@ //! //! ```no_run //! # tokio_test::block_on(async { -//! use faktory::Worker; +//! use faktory::WorkerBuilder; //! use std::io; -//! let mut w = Worker::builder() +//! let mut w = WorkerBuilder::default() //! .register_fn("foobar", |job| async move { //! println!("{:?}", job); //! Ok::<(), io::Error>(()) From b296315c1a5f30734dbb600a7e9c99e83878d1f2 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 30 May 2024 10:04:25 +0400 Subject: [PATCH 149/175] Intorduce RunCeaseReason enum for Worker::run --- src/lib.rs | 2 +- src/worker/mod.rs | 30 ++++++++++++++++++++++++------ tests/consumer.rs | 20 ++++++++++++++++---- tests/real/community.rs | 5 +++-- 4 files changed, 44 insertions(+), 13 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 6f702741..05688c5c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -76,7 +76,7 @@ mod worker; pub use crate::error::Error; pub use crate::proto::{Client, Job, JobBuilder, JobId, Reconnect, WorkerId}; -pub use crate::worker::{JobRunner, Worker, WorkerBuilder}; +pub use crate::worker::{JobRunner, RunCeaseReason, Worker, WorkerBuilder}; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 63351005..d011495d 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -304,6 +304,23 @@ impl } } +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +/// A reason why [`Worker::run`] has discontinued. +pub enum RunCeaseReason { + /// A signal from the user space received. + /// + /// A future provided via [`WorkerBuilder::with_graceful_shutdown`] has resolved + /// signalling the worker to stop. + CancelSignal, + + /// A signal from the Faktory server received. + /// + /// Under the hood, the worker is being in constant communication with the Faktory server, + /// not only fetching jobs and reporting on processing results, but also listening for + /// the server's instructions, one of which can be to disengage. + FaktoryInstruction, +} + impl< S: AsyncBufRead + AsyncWrite + Reconnect + Send + Unpin + 'static, E: StdError + 'static + Send, @@ -364,13 +381,14 @@ impl< /// to disengage (`Ok` is returned), or a signal from the user-space code has been received via a future /// supplied to [`WorkerBuilder::with_graceful_shutdown`](`Ok` is returned). /// - /// The value in an `Ok` indicates the number of workers that may still be processing jobs, but `0` can also - /// indicate the [graceful shutdown period](WorkerBuilder::shutdown_timeout) has been exceeded. + /// The value in an `Ok` holds a tuple with the reason why the run has discontinued (see [`RunCeaseReason`]) + /// and the number of workers that may still be processing jobs. Note that `0` can also indicate that + /// the [graceful shutdown period](WorkerBuilder::shutdown_timeout) has been exceeded. /// /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - pub async fn run(&mut self, queues: &[Q]) -> Result + pub async fn run(&mut self, queues: &[Q]) -> Result<(RunCeaseReason, usize), Error> where Q: AsRef, { @@ -433,7 +451,7 @@ impl< } }; self.terminated = true; - Ok(nrunning) + Ok((RunCeaseReason::CancelSignal, nrunning)) }, // A signal from the Faktory server received or an error occurred. exit = self.listen_for_heartbeats(&statuses) => { @@ -446,7 +464,7 @@ impl< if let Ok(true) = exit { let running = self.force_fail_all_workers("terminated").await; if running != 0 { - return Ok(running); + return Ok((RunCeaseReason::FaktoryInstruction, running)); } } @@ -458,7 +476,7 @@ impl< let results = results.into_iter().collect::, _>>(); match exit { - Ok(_) => results.map(|_| 0), + Ok(_) => results.map(|_| (RunCeaseReason::FaktoryInstruction, 0)), Err(e) => results.and(Err(e)), } } diff --git a/tests/consumer.rs b/tests/consumer.rs index 5fed5a54..62d83b31 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -259,7 +259,10 @@ async fn well_behaved() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!(jh.await.unwrap().unwrap(), 0); + assert_eq!( + jh.await.unwrap().unwrap(), + (RunCeaseReason::FaktoryInstruction, 0) + ); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -326,7 +329,10 @@ async fn no_first_job() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!(jh.await.unwrap().unwrap(), 0); + assert_eq!( + jh.await.unwrap().unwrap(), + (RunCeaseReason::FaktoryInstruction, 0) + ); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -403,7 +409,10 @@ async fn well_behaved_many() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!(jh.await.unwrap().unwrap(), 0); + assert_eq!( + jh.await.unwrap().unwrap(), + (RunCeaseReason::FaktoryInstruction, 0) + ); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -487,7 +496,10 @@ async fn terminate() { // at this point, c.run() should immediately return with Ok(1) indicating that one job is still // running. - assert_eq!(jh.await.unwrap().unwrap(), 1); + assert_eq!( + jh.await.unwrap().unwrap(), + (RunCeaseReason::FaktoryInstruction, 1) + ); // Heartbeat Thread (stream with index 0). // diff --git a/tests/real/community.rs b/tests/real/community.rs index 57cb9e04..96b78758 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,5 +1,5 @@ use crate::skip_check; -use faktory::{Client, Job, JobBuilder, JobId, Worker, WorkerBuilder, WorkerId}; +use faktory::{Client, Job, JobBuilder, JobId, RunCeaseReason, Worker, WorkerBuilder, WorkerId}; use serde_json::Value; use std::time::Duration; use std::{io, sync}; @@ -411,6 +411,7 @@ async fn test_shutdown_signals_handling() { token.cancel(); // one worker was processing a task when we interrupted it - let nrunning = jh.await.expect("joined ok").unwrap(); + let (cease_reason, nrunning) = jh.await.expect("joined ok").unwrap(); + assert_eq!(cease_reason, RunCeaseReason::CancelSignal); assert_eq!(nrunning, 1); } From 9a8c8e1550d15314c65cc1148b3caa055e98893e Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 8 Jun 2024 08:19:58 +0400 Subject: [PATCH 150/175] Enable gracefull shutdown for Worker::run_to_completion --- Cargo.lock | 10 ------ Cargo.toml | 1 - src/worker/mod.rs | 68 ++++++++++++++++++----------------------- tests/real/community.rs | 2 +- 4 files changed, 30 insertions(+), 51 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 21327cff..97445d7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1057,15 +1057,6 @@ dependencies = [ "digest", ] -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - [[package]] name = "socket2" version = "0.5.7" @@ -1224,7 +1215,6 @@ dependencies = [ "mio", "num_cpus", "pin-project-lite", - "signal-hook-registry", "socket2", "tokio-macros", "windows-sys 0.48.0", diff --git a/Cargo.toml b/Cargo.toml index b9fc00d7..1101c14f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,6 @@ tokio = { version = "1.35.1", features = [ "macros", # brings in `tokio::select!` we are utilizing in `Worker::run` "net", # enables `tokio::net` namespace with `TcpStream` we are heavily relying upon "rt-multi-thread", # allows for `tokio::task::block_in_place()` in Client::drop - "signal", # allows us to listen for OS signal, e.g. "SIGTERM" "time", # anables `tokio::time` namespace holding the `sleep` utility and `Duraction` struct ] } tokio-native-tls = { version = "0.3.1", optional = true } diff --git a/src/worker/mod.rs b/src/worker/mod.rs index d011495d..491ed9c1 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -412,49 +412,26 @@ impl< .await?; } - // for "forever" operations (currently only `Worker::run_to_completion`) we support SIGTERM handling, - // whereas for long-running operations (see `Worker::run`), we are polling the cancellation future which - // serves as a signal to start graceful shutdowna and return control to the calling site - let cancel_signal = if self.forever { - None - } else { - self.shutdown_signal.take() - }; - - // it is OK to `take` it here, since we are either making the process exit, - // or marking the main `worker` as `terminated` and so it cannot be re-used - let timeout = self.shutdown_timeout.take(); + // Either we have already taken this future and are polling it elsewhere (see Worker::run_to_completion), + // or they've never provided it to us (reminder: they do so via WorkerBuilder::with_graceful_shutdown) + let cancel_signal = self.shutdown_signal.take(); let report = tokio::select! { - // A signal SIGTERM from the OS received. - _ = tokio::signal::ctrl_c(), if self.forever => { - tokio::select! { - _ = tokio::signal::ctrl_c() => { - process::exit(0); - }, - _ = tokio_sleep(timeout.unwrap()), if timeout.is_some() => { - process::exit(0); - }, - _nrunning = self.force_fail_all_workers("SIGTERM received") => { - process::exit(0); - } - } - }, // A signal from the user space received. _ = async { let signal = cancel_signal.unwrap(); signal.await }, if cancel_signal.is_some() => { let nrunning = tokio::select! { - _ = tokio_sleep(timeout.unwrap()), if timeout.is_some() => { + _ = tokio_sleep(self.shutdown_timeout.unwrap()), if self.shutdown_timeout.is_some() => { 0 }, - nrunning = self.force_fail_all_workers("termination signal received over channel") => { + nrunning = self.force_fail_all_workers("termination signal received from user space") => { nrunning } }; self.terminated = true; Ok((RunCeaseReason::CancelSignal, nrunning)) }, - // A signal from the Faktory server received or an error occurred. - exit = self.listen_for_heartbeats(&statuses) => { + // A signal from the Faktory server received or an error occurred. + exit = self.listen_for_heartbeats(&statuses) => { // there are a couple of cases here: // - we got TERMINATE, so we should just return, even if a worker is still running // - we got TERMINATE and all workers has exited @@ -484,21 +461,34 @@ impl< report } - /// Run this worker until the server tells us to exit or a connection cannot be re-established. + /// Run this worker until the server tells us to exit or a connection cannot be re-established, + /// or a signal from the user-space code has been received via a future passed to [`WorkerBuilder::with_graceful_shutdown`] /// - /// This function never returns. When the worker decides to exit or `SIGTERM` is received, - /// the process is terminated within the [shutdown period](WorkerBuilder::shutdown_timeout). + /// This function never returns. When the worker decides to exit or a signal to shutdown gracefully + /// has been received, the process is terminated within the [shutdown period](WorkerBuilder::shutdown_timeout). pub async fn run_to_completion(mut self, queues: &[Q]) -> ! where Q: AsRef, { - self.forever = true; - while self.run(queues).await.is_err() { - if self.reconnect().await.is_err() { - break; - } - } + let sig = self.shutdown_signal.take(); + tokio::select! { + // A signal from the user space received. + _ = async { let sig = sig.unwrap(); sig.await }, if sig.is_some() => { + tokio::select! { + _ = tokio_sleep(self.shutdown_timeout.unwrap()), if self.shutdown_timeout.is_some() => {}, + _ = self.force_fail_all_workers("termination signal received from user space") => {} + }; + }, + // A signal from the server (TERMINATE) received. + _ = async { + while self.run(queues).await.is_err() { + if self.reconnect().await.is_err() { + break; + } + } + } => {}, + } process::exit(0); } } diff --git a/tests/real/community.rs b/tests/real/community.rs index 96b78758..b11e0e80 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -357,7 +357,7 @@ fn process_hard_task( return Box::new(move |j: Job| { let sender = sync::Arc::clone(&sender); Box::pin(async move { - let complexity = j.args().iter().next().unwrap().as_u64().unwrap(); + let complexity = j.args()[0].as_u64().unwrap(); sender.send(true).await.unwrap(); // inform that we are now starting to process the job tokio::time::sleep(tokio::time::Duration::from_millis(complexity)).await; Ok::<(), io::Error>(()) From 4b373e0d68aa9d55c97e5928661fa66a9e3e8093 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sat, 8 Jun 2024 08:32:47 +0400 Subject: [PATCH 151/175] Add docs on Worker::listern_for_heartbeats usage in Worker::run --- src/worker/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 491ed9c1..e95197c6 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -431,6 +431,9 @@ impl< Ok((RunCeaseReason::CancelSignal, nrunning)) }, // A signal from the Faktory server received or an error occurred. + // Even though `Worker::listen_for_hearbeats` is not cancellation safe, we are ok using it here, + // since we are not `select!`ing in a loop and we are eventually _either_ marking the worker as + // terminated, _or_ re-creating a connection, i.e. we never end up re-using the "broken" connection. exit = self.listen_for_heartbeats(&statuses) => { // there are a couple of cases here: // - we got TERMINATE, so we should just return, even if a worker is still running From bdf7c0d50d5fceb9bb7f3bcdeb4312019dbfcd5e Mon Sep 17 00:00:00 2001 From: --show-origin Date: Mon, 15 Jul 2024 20:56:14 +0400 Subject: [PATCH 152/175] Dedup use statements in tests::real::community --- tests/real/community.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/real/community.rs b/tests/real/community.rs index 329889da..86ec924c 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,7 +1,6 @@ use crate::{assert_gte, skip_check}; use faktory::{Client, Job, JobBuilder, JobId, RunCeaseReason, Worker, WorkerBuilder, WorkerId}; use serde_json::Value; -use std::time::Duration; use std::{io, sync, time::Duration}; use tokio::time as tokio_time; use tokio_util::sync::CancellationToken; From f0f1dd788eaddfb4bbeabb2468ebec607739b249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Mon, 15 Jul 2024 22:53:49 +0500 Subject: [PATCH 153/175] Update src/worker/mod.rs Co-authored-by: Jon Gjengset --- src/worker/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index a9b45641..950aa21b 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -454,7 +454,7 @@ impl< exit = self.listen_for_heartbeats(&statuses) => { // there are a couple of cases here: // - we got TERMINATE, so we should just return, even if a worker is still running - // - we got TERMINATE and all workers has exited + // - we got TERMINATE and all workers have exited // - we got an error from heartbeat() self.terminated = exit.is_ok(); From b6ca794db4ef38e57d6ee56dc31a03cb2b4f9605 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 16 Jul 2024 10:47:44 +0400 Subject: [PATCH 154/175] Improve docs for WorkerBuilder::with_graceful_shutdown --- src/worker/builder.rs | 9 +++++++++ tests/real/community.rs | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 42b1e83c..c8bc3eba 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -108,7 +108,9 @@ impl WorkerBuilder { /// ```no_run /// # tokio_test::block_on(async { /// use faktory::{Client, Job, Worker}; + /// use std::time::Duration; /// use tokio_util::sync::CancellationToken; + /// use tokio::time::sleep; /// /// Client::connect(None) /// .await @@ -133,8 +135,15 @@ impl WorkerBuilder { /// // start consuming /// let jh = tokio::spawn(async move { w.run(&["default"]).await }); /// + /// // verify the consumer thread has not finished + /// sleep(Duration::from_secs(2)).await; + /// assert!(!jh.is_finished()); + /// /// // send a signal to eventually return control (upon graceful shutdown) /// token.cancel(); + /// + /// // learn the stop reason and the number of workers that were still running + /// let (_stop_reason, _nrunning) = jh.await.expect("joined ok").unwrap(); /// # }); /// ``` pub fn with_graceful_shutdown(mut self, signal: F) -> Self diff --git a/tests/real/community.rs b/tests/real/community.rs index 86ec924c..21e19abf 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -668,6 +668,8 @@ async fn test_shutdown_signals_handling() { cl.enqueue(j).await.unwrap(); rx_for_test_purposes.recv().await; + assert!(!jh.is_finished()); + // ... immediately signal to return control token.cancel(); From 42304bf446672892b606c5c2e3ecf66af105cb60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:17:07 +0500 Subject: [PATCH 155/175] Update src/worker/mod.rs Co-authored-by: Jon Gjengset --- src/worker/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 950aa21b..d02562f9 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -323,7 +323,8 @@ impl #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] /// A reason why [`Worker::run`] has discontinued. -pub enum RunCeaseReason { +#[non_exhaustive] +pub enum StopReason { /// A signal from the user space received. /// /// A future provided via [`WorkerBuilder::with_graceful_shutdown`] has resolved From 6240de0204d5e7a95426e4a7eb9b53b915edd663 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:17:17 +0500 Subject: [PATCH 156/175] Update src/worker/mod.rs Co-authored-by: Jon Gjengset --- src/worker/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index d02562f9..824ca07f 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -325,11 +325,11 @@ impl /// A reason why [`Worker::run`] has discontinued. #[non_exhaustive] pub enum StopReason { - /// A signal from the user space received. + /// Graceful shutdown completed. /// /// A future provided via [`WorkerBuilder::with_graceful_shutdown`] has resolved /// signalling the worker to stop. - CancelSignal, + GracefulShutdown, /// A signal from the Faktory server received. /// From f41e063c9d39f28b9f851834e4247615aef78437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:17:24 +0500 Subject: [PATCH 157/175] Update src/worker/mod.rs Co-authored-by: Jon Gjengset --- src/worker/mod.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 824ca07f..66eda1fb 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -331,12 +331,13 @@ pub enum StopReason { /// signalling the worker to stop. GracefulShutdown, - /// A signal from the Faktory server received. + /// The Faktory server asked us to shut down. /// /// Under the hood, the worker is being in constant communication with the Faktory server, /// not only fetching jobs and reporting on processing results, but also listening for - /// the server's instructions, one of which can be to disengage. - FaktoryInstruction, + /// the server's instructions, one of which can be to disengage (e.g., to indicate that the + /// server is shutting down. + ServerInstruction, } impl< From 68628acf762ca12247465b900eb815fe01d47304 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Tue, 16 Jul 2024 19:43:41 +0400 Subject: [PATCH 158/175] Update sources to use StopReason struct --- src/lib.rs | 2 +- src/worker/mod.rs | 10 +++++----- tests/consumer.rs | 8 ++++---- tests/real/community.rs | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 0efb336d..28993671 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -80,7 +80,7 @@ pub use crate::proto::{ Client, DataSnapshot, FaktoryState, Job, JobBuilder, JobId, Reconnect, ServerSnapshot, WorkerId, }; -pub use crate::worker::{JobRunner, RunCeaseReason, Worker, WorkerBuilder}; +pub use crate::worker::{JobRunner, StopReason, Worker, WorkerBuilder}; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 66eda1fb..5b45daa4 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -400,14 +400,14 @@ impl< /// to disengage (`Ok` is returned), or a signal from the user-space code has been received via a future /// supplied to [`WorkerBuilder::with_graceful_shutdown`](`Ok` is returned). /// - /// The value in an `Ok` holds a tuple with the reason why the run has discontinued (see [`RunCeaseReason`]) + /// The value in an `Ok` holds a tuple with the reason why the run has discontinued (see [`StopReason`]) /// and the number of workers that may still be processing jobs. Note that `0` can also indicate that /// the [graceful shutdown period](WorkerBuilder::shutdown_timeout) has been exceeded. /// /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - pub async fn run(&mut self, queues: &[Q]) -> Result<(RunCeaseReason, usize), Error> + pub async fn run(&mut self, queues: &[Q]) -> Result<(StopReason, usize), Error> where Q: AsRef, { @@ -447,7 +447,7 @@ impl< } }; self.terminated = true; - Ok((RunCeaseReason::CancelSignal, nrunning)) + Ok((StopReason::GracefulShutdown, nrunning)) }, // A signal from the Faktory server received or an error occurred. // Even though `Worker::listen_for_hearbeats` is not cancellation safe, we are ok using it here, @@ -463,7 +463,7 @@ impl< if let Ok(true) = exit { let running = self.force_fail_all_workers("terminated").await; if running != 0 { - return Ok((RunCeaseReason::FaktoryInstruction, running)); + return Ok((StopReason::ServerInstruction, running)); } } @@ -475,7 +475,7 @@ impl< let results = results.into_iter().collect::, _>>(); match exit { - Ok(_) => results.map(|_| (RunCeaseReason::FaktoryInstruction, 0)), + Ok(_) => results.map(|_| (StopReason::ServerInstruction, 0)), Err(e) => results.and(Err(e)), } } diff --git a/tests/consumer.rs b/tests/consumer.rs index 62d83b31..d4439a33 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -261,7 +261,7 @@ async fn well_behaved() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. assert_eq!( jh.await.unwrap().unwrap(), - (RunCeaseReason::FaktoryInstruction, 0) + (StopReason::ServerInstruction, 0) ); // heartbeat should have seen two beats (quiet + terminate) @@ -331,7 +331,7 @@ async fn no_first_job() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. assert_eq!( jh.await.unwrap().unwrap(), - (RunCeaseReason::FaktoryInstruction, 0) + (StopReason::ServerInstruction, 0) ); // heartbeat should have seen two beats (quiet + terminate) @@ -411,7 +411,7 @@ async fn well_behaved_many() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. assert_eq!( jh.await.unwrap().unwrap(), - (RunCeaseReason::FaktoryInstruction, 0) + (StopReason::ServerInstruction, 0) ); // heartbeat should have seen two beats (quiet + terminate) @@ -498,7 +498,7 @@ async fn terminate() { // running. assert_eq!( jh.await.unwrap().unwrap(), - (RunCeaseReason::FaktoryInstruction, 1) + (StopReason::ServerInstruction, 1) ); // Heartbeat Thread (stream with index 0). diff --git a/tests/real/community.rs b/tests/real/community.rs index 21e19abf..5ced296c 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -1,5 +1,5 @@ use crate::{assert_gte, skip_check}; -use faktory::{Client, Job, JobBuilder, JobId, RunCeaseReason, Worker, WorkerBuilder, WorkerId}; +use faktory::{Client, Job, JobBuilder, JobId, StopReason, Worker, WorkerBuilder, WorkerId}; use serde_json::Value; use std::{io, sync, time::Duration}; use tokio::time as tokio_time; @@ -675,7 +675,7 @@ async fn test_shutdown_signals_handling() { // one worker was processing a task when we interrupted it let (cease_reason, nrunning) = jh.await.expect("joined ok").unwrap(); - assert_eq!(cease_reason, RunCeaseReason::CancelSignal); + assert_eq!(cease_reason, StopReason::GracefulShutdown); assert_eq!(nrunning, 1); } From 88f53ee88727a2f8cea621c251eba7220b58650d Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 18 Jul 2024 09:03:49 +0400 Subject: [PATCH 159/175] Introduce StopDetail holding StopReason and nrunning --- src/lib.rs | 2 +- src/worker/builder.rs | 6 ++++-- src/worker/mod.rs | 37 ++++++++++--------------------------- src/worker/stop.rs | 41 +++++++++++++++++++++++++++++++++++++++++ tests/consumer.rs | 28 ++++++++++++---------------- tests/real/community.rs | 6 +++--- 6 files changed, 71 insertions(+), 49 deletions(-) create mode 100644 src/worker/stop.rs diff --git a/src/lib.rs b/src/lib.rs index 28993671..badd21af 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -80,7 +80,7 @@ pub use crate::proto::{ Client, DataSnapshot, FaktoryState, Job, JobBuilder, JobId, Reconnect, ServerSnapshot, WorkerId, }; -pub use crate::worker::{JobRunner, StopReason, Worker, WorkerBuilder}; +pub use crate::worker::{JobRunner, StopDetails, StopReason, Worker, WorkerBuilder}; #[cfg(feature = "ent")] #[cfg_attr(docsrs, doc(cfg(feature = "ent")))] diff --git a/src/worker/builder.rs b/src/worker/builder.rs index c8bc3eba..f0be718c 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -107,7 +107,7 @@ impl WorkerBuilder { /// /// ```no_run /// # tokio_test::block_on(async { - /// use faktory::{Client, Job, Worker}; + /// use faktory::{Client, Job, StopReason, Worker}; /// use std::time::Duration; /// use tokio_util::sync::CancellationToken; /// use tokio::time::sleep; @@ -143,7 +143,9 @@ impl WorkerBuilder { /// token.cancel(); /// /// // learn the stop reason and the number of workers that were still running - /// let (_stop_reason, _nrunning) = jh.await.expect("joined ok").unwrap(); + /// let stop_details = jh.await.expect("joined ok").unwrap(); + /// assert_eq!(stop_details.stop_reason, StopReason::GracefulShutdown); + /// let _nrunning = stop_details.nrunning; /// # }); /// ``` pub fn with_graceful_shutdown(mut self, signal: F) -> Self diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 5b45daa4..f74db85a 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -17,9 +17,11 @@ mod builder; mod health; mod runner; mod state; +mod stop; pub use builder::WorkerBuilder; pub use runner::JobRunner; +pub use stop::{StopDetails, StopReason}; pub(crate) const STATUS_RUNNING: usize = 0; pub(crate) const STATUS_QUIET: usize = 1; @@ -321,25 +323,6 @@ impl } } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] -/// A reason why [`Worker::run`] has discontinued. -#[non_exhaustive] -pub enum StopReason { - /// Graceful shutdown completed. - /// - /// A future provided via [`WorkerBuilder::with_graceful_shutdown`] has resolved - /// signalling the worker to stop. - GracefulShutdown, - - /// The Faktory server asked us to shut down. - /// - /// Under the hood, the worker is being in constant communication with the Faktory server, - /// not only fetching jobs and reporting on processing results, but also listening for - /// the server's instructions, one of which can be to disengage (e.g., to indicate that the - /// server is shutting down. - ServerInstruction, -} - impl< S: AsyncBufRead + AsyncWrite + Reconnect + Send + Unpin + 'static, E: StdError + 'static + Send, @@ -400,14 +383,14 @@ impl< /// to disengage (`Ok` is returned), or a signal from the user-space code has been received via a future /// supplied to [`WorkerBuilder::with_graceful_shutdown`](`Ok` is returned). /// - /// The value in an `Ok` holds a tuple with the reason why the run has discontinued (see [`StopReason`]) - /// and the number of workers that may still be processing jobs. Note that `0` can also indicate that + /// The value in an `Ok` holds [`details`](StopDetails) about the reason why the run has discontinued (see [`StopReason`]) + /// and the number of workers that may still be processing jobs. Note that `0` in [`StopDetails::nrunning`] can also indicate that /// the [graceful shutdown period](WorkerBuilder::shutdown_timeout) has been exceeded. /// /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. - pub async fn run(&mut self, queues: &[Q]) -> Result<(StopReason, usize), Error> + pub async fn run(&mut self, queues: &[Q]) -> Result where Q: AsRef, { @@ -447,7 +430,7 @@ impl< } }; self.terminated = true; - Ok((StopReason::GracefulShutdown, nrunning)) + Ok(stop::StopDetails::new(StopReason::GracefulShutdown, nrunning)) }, // A signal from the Faktory server received or an error occurred. // Even though `Worker::listen_for_hearbeats` is not cancellation safe, we are ok using it here, @@ -461,9 +444,9 @@ impl< self.terminated = exit.is_ok(); if let Ok(true) = exit { - let running = self.force_fail_all_workers("terminated").await; - if running != 0 { - return Ok((StopReason::ServerInstruction, running)); + let nrunning = self.force_fail_all_workers("terminated").await; + if nrunning != 0 { + return Ok(stop::StopDetails::new(StopReason::ServerInstruction, nrunning)); } } @@ -475,7 +458,7 @@ impl< let results = results.into_iter().collect::, _>>(); match exit { - Ok(_) => results.map(|_| (StopReason::ServerInstruction, 0)), + Ok(_) => results.map(|_| stop::StopDetails::new(StopReason::ServerInstruction, 0)), Err(e) => results.and(Err(e)), } } diff --git a/src/worker/stop.rs b/src/worker/stop.rs new file mode 100644 index 00000000..cfe6553f --- /dev/null +++ b/src/worker/stop.rs @@ -0,0 +1,41 @@ +#[cfg(doc)] +use super::{Worker, WorkerBuilder}; + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +/// A reason why [`Worker::run`] has discontinued. +#[non_exhaustive] +pub enum StopReason { + /// Graceful shutdown completed. + /// + /// A future provided via [`WorkerBuilder::with_graceful_shutdown`] has resolved + /// signalling the worker to stop. + GracefulShutdown, + + /// The Faktory server asked us to shut down. + /// + /// Under the hood, the worker is being in constant communication with the Faktory server, + /// not only fetching jobs and reporting on processing results, but also listening for + /// the server's instructions, one of which can be to disengage (e.g., to indicate that the + /// server is shutting down. + ServerInstruction, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +/// Holds some details aroung a worker's run stoppage, such as the reason why this worker discontinued +/// and the number of workers that might still be processing jobs at that instant. +pub struct StopDetails { + /// A [`reason`](StopReason) why the worker's runu has discontinued. + pub stop_reason: StopReason, + + /// The number of workers that might still be processing jobs. + pub nrunning: usize, +} + +impl StopDetails { + pub(crate) fn new(stop_reason: StopReason, nrunning: usize) -> Self { + StopDetails { + stop_reason, + nrunning, + } + } +} diff --git a/tests/consumer.rs b/tests/consumer.rs index d4439a33..fbb75bff 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -259,10 +259,9 @@ async fn well_behaved() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!( - jh.await.unwrap().unwrap(), - (StopReason::ServerInstruction, 0) - ); + let details = jh.await.unwrap().unwrap(); + assert_eq!(details.stop_reason, StopReason::ServerInstruction); + assert_eq!(details.nrunning, 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -329,10 +328,9 @@ async fn no_first_job() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!( - jh.await.unwrap().unwrap(), - (StopReason::ServerInstruction, 0) - ); + let details = jh.await.unwrap().unwrap(); + assert_eq!(details.stop_reason, StopReason::ServerInstruction); + assert_eq!(details.nrunning, 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -409,10 +407,9 @@ async fn well_behaved_many() { s.push_bytes_to_read(0, b"+{\"state\":\"terminate\"}\r\n"); // at this point, c.run() should eventually return with Ok(0) indicating that it finished. - assert_eq!( - jh.await.unwrap().unwrap(), - (StopReason::ServerInstruction, 0) - ); + let details = jh.await.unwrap().unwrap(); + assert_eq!(details.stop_reason, StopReason::ServerInstruction); + assert_eq!(details.nrunning, 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -496,10 +493,9 @@ async fn terminate() { // at this point, c.run() should immediately return with Ok(1) indicating that one job is still // running. - assert_eq!( - jh.await.unwrap().unwrap(), - (StopReason::ServerInstruction, 1) - ); + let details = jh.await.unwrap().unwrap(); + assert_eq!(details.stop_reason, StopReason::ServerInstruction); + assert_eq!(details.nrunning, 1); // Heartbeat Thread (stream with index 0). // diff --git a/tests/real/community.rs b/tests/real/community.rs index 5ced296c..f5903f9e 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -674,9 +674,9 @@ async fn test_shutdown_signals_handling() { token.cancel(); // one worker was processing a task when we interrupted it - let (cease_reason, nrunning) = jh.await.expect("joined ok").unwrap(); - assert_eq!(cease_reason, StopReason::GracefulShutdown); - assert_eq!(nrunning, 1); + let stop_details = jh.await.expect("joined ok").unwrap(); + assert_eq!(stop_details.stop_reason, StopReason::GracefulShutdown); + assert_eq!(stop_details.nrunning, 1); } #[tokio::test(flavor = "multi_thread")] From 6edfc087754143548b02e3842535a119bedcbf6d Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 18 Jul 2024 10:08:22 +0400 Subject: [PATCH 160/175] Add commnent on marking Worker as terminated --- src/worker/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index f74db85a..81334d99 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -441,6 +441,9 @@ impl< // - we got TERMINATE, so we should just return, even if a worker is still running // - we got TERMINATE and all workers have exited // - we got an error from heartbeat() + // + // note that if it is an error from heartbeat(), the worker will _not_ be marked as + // terminated and _can_ be restarted self.terminated = exit.is_ok(); if let Ok(true) = exit { From b29f2ef712ddd18ef27470067f43c69f36f90ada Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 18 Jul 2024 13:34:51 +0400 Subject: [PATCH 161/175] Do not take the signal in Worker::run --- Cargo.toml | 1 + src/worker/builder.rs | 3 +++ src/worker/mod.rs | 42 ++++++++++++++++++------------------------ 3 files changed, 22 insertions(+), 24 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4b2758b2..cd9a88c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,6 +38,7 @@ serde_json = "1.0" sha2 = "0.10.0" thiserror = "1.0.30" tokio = { version = "1.35.1", features = [ + "sync", # gives us an asynchronous `Mutex` "io-util", # enables `AsyncWriteExt`, `AsyncReadExt`, and `AsyncBufReadExt` in `tokio::io` namespace "macros", # brings in `tokio::select!` we are utilizing in `Worker::run` "net", # enables `tokio::net` namespace with `TcpStream` we are heavily relying upon diff --git a/src/worker/builder.rs b/src/worker/builder.rs index f0be718c..5f8621be 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -105,6 +105,9 @@ impl WorkerBuilder { /// (e.g. report on the currently processed to the Faktory server) and a shutdown deadline. /// The latter can be customized via [`WorkerBuilder::shutdown_timeout`]. /// + /// Note that once the `signal` resolves, the [`Worker`] will be marked as terminated and calling + /// [`Worker::run`] will cause a panic. You will need to build and run a new worker instead. + /// /// ```no_run /// # tokio_test::block_on(async { /// use faktory::{Client, Job, StopReason, Worker}; diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 81334d99..8c886e10 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -10,6 +10,7 @@ use std::time::Duration; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::net::TcpStream; +use tokio::sync::Mutex; use tokio::task::{spawn_blocking, AbortHandle, JoinError, JoinSet}; use tokio::time::sleep as tokio_sleep; @@ -164,7 +165,7 @@ pub struct Worker { terminated: bool, forever: bool, shutdown_timeout: Option, - shutdown_signal: Option, + shutdown_signal: Option>>, } impl Worker { @@ -197,7 +198,7 @@ impl Worker { terminated: false, forever: false, shutdown_timeout, - shutdown_signal, + shutdown_signal: shutdown_signal.map(|signal| Arc::new(Mutex::new(signal))), } } } @@ -390,6 +391,10 @@ impl< /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), /// the worker should **not** try to resume by calling `run` again. This will cause a panic. + /// + /// Note that if you provided a shutdown signal when building this worker (see [`WorkerBuilder::with_graceful_shutdown`]), + /// and this signal resolved, the worker will be marked as terminated and calling this method will cause a panic. + /// You will need to build and run a new worker instead. pub async fn run(&mut self, queues: &[Q]) -> Result where Q: AsRef, @@ -414,13 +419,14 @@ impl< .await?; } - // Either we have already taken this future and are polling it elsewhere (see Worker::run_to_completion), - // or they've never provided it to us (reminder: they do so via WorkerBuilder::with_graceful_shutdown) - let cancel_signal = self.shutdown_signal.take(); + let maybe_shutdown_signal = self.shutdown_signal.clone(); let report = tokio::select! { // A signal from the user space received. - _ = async { let signal = cancel_signal.unwrap(); signal.await }, if cancel_signal.is_some() => { + _ = async { + let signal = maybe_shutdown_signal.unwrap(); + signal.lock().await.as_mut().await; + }, if maybe_shutdown_signal.is_some() => { let nrunning = tokio::select! { _ = tokio_sleep(self.shutdown_timeout.unwrap()), if self.shutdown_timeout.is_some() => { 0 @@ -466,6 +472,7 @@ impl< } } }; + report } @@ -478,25 +485,12 @@ impl< where Q: AsRef, { - let sig = self.shutdown_signal.take(); - tokio::select! { - // A signal from the user space received. - _ = async { let sig = sig.unwrap(); sig.await }, if sig.is_some() => { - tokio::select! { - _ = tokio_sleep(self.shutdown_timeout.unwrap()), if self.shutdown_timeout.is_some() => {}, - _ = self.force_fail_all_workers("termination signal received from user space") => {} - }; - }, - // A signal from the server (TERMINATE) received. - _ = async { - while self.run(queues).await.is_err() { - if self.reconnect().await.is_err() { - break; - } - } - } => {}, - + while self.run(queues).await.is_err() { + if self.reconnect().await.is_err() { + break; + } } + process::exit(0); } } From d1ad27572315e0d9ee585758315ef96af6af5d11 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 18 Jul 2024 13:40:36 +0400 Subject: [PATCH 162/175] Fix typo --- src/worker/health.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/health.rs b/src/worker/health.rs index 582f4bc4..bdb446df 100644 --- a/src/worker/health.rs +++ b/src/worker/health.rs @@ -55,7 +55,7 @@ where } if last.elapsed() < HEARTBEAT_INTERVAL { - // don't sent a heartbeat yet + // don't send a heartbeat yet continue; } From bf4d1430b5b47c4408ad01776ee7bb728ca787b1 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 18 Jul 2024 17:59:24 +0400 Subject: [PATCH 163/175] Add heart broken test --- src/worker/mod.rs | 2 ++ tests/consumer.rs | 69 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 8c886e10..3c2d3e5a 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -461,9 +461,11 @@ impl< // we want to expose worker errors, or otherwise the heartbeat error let mut results = Vec::with_capacity(nworkers); + while let Some(res) = join_set.join_next().await { results.push(res.expect("joined ok")); } + let results = results.into_iter().collect::, _>>(); match exit { diff --git a/tests/consumer.rs b/tests/consumer.rs index fbb75bff..dc67cac8 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -477,7 +477,7 @@ async fn terminate() { ); let jh = spawn(async move { - // Note how running a coordinating leads to mock::Stream::reconnect: + // Note how running a coordinating worker leads to mock::Stream::reconnect: // `Worker::run` -> `Worker::spawn_worker_into` -> `Worker::for_worker` -> `Client::connect_again` -> `Stream::reconnect` // // So when the `w.run` is triggered, `Stream::reconnect` will fire and the `take_next` member on the `mock::Inner` struct @@ -541,3 +541,70 @@ async fn terminate() { // But generally speaking, the graceful situation is when the number of `HI`s and the number of `END`s are // equal. Why did they decide for `END` instead of `BYE` in Faktory ? :smile: } + +#[tokio::test(flavor = "multi_thread")] +async fn heart_broken() { + // prepare streams for main and worker, though we do not + // care about the latter in this test + let mut s = mock::Stream::new(2); + + // prepare a worker without any handlers + let mut w: Worker<_, io::Error> = Worker::builder() + .register_fn("foobar", |_| async move { + // this magic 7 means: give the coordinating worker (and namely its heartbeat task) + // just enough time to send a heartbeat message to the server and get disappointed + // with the server response + sleep(Duration::from_secs(7)).await; + Ok(()) + }) + .connect_with(s.clone(), None) + .await + .unwrap(); + + // as if some producing client has enqueued a job + s.push_bytes_to_read( + 1, + b"$186\r\n\ + {\ + \"jid\":\"forever\",\ + \"queue\":\"default\",\ + \"jobtype\":\"foobar\",\ + \"args\":[],\ + \"created_at\":\"2024-07-18T17:41:35.772981326Z\",\ + \"enqueued_at\":\"2024-07-18T17:41:35.773318394Z\",\ + \"reserve_for\":600,\ + \"retry\":25\ + }\r\n", + ); + + // ignore the HELLO from the coordinatior + s.ignore(0); + + // start consuming + let jh = spawn(async move { w.run(&["default"]).await }); + + // ack that the worker has received a job + s.ok(1); + + // as if the Fatory sent non-sense in reply to the HEARTBEAT message, + // making this way the `Worker::run` stop, but without marking this worker + // as terminated + s.push_bytes_to_read(0, b"+{\"state\":\"heartbroken response\"}\r\n"); + + // at this point the `Worker::run` should have return control + // with an error rather that `StopDetails`, because the run was discontinued + // due to protocol error rather than a signal from the user code or the Faktory server + let error = jh.await.unwrap().unwrap_err(); + + match error { + Error::Protocol(error::Protocol::BadType { expected, received }) => { + assert_eq!(expected, "heartbeat response"); + assert_eq!(received, "{\"state\":\"heartbroken response\"}") + } + e => unreachable!("{:?}", e), + } + + // we can run the same worker again and this will not cause a panic + + // TODO! +} From 85adafdc3ca19e67d68de148d2fd330d86482d86 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 18 Jul 2024 18:02:01 +0400 Subject: [PATCH 164/175] Rm noise in diff --- src/worker/mod.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 3c2d3e5a..8c886e10 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -461,11 +461,9 @@ impl< // we want to expose worker errors, or otherwise the heartbeat error let mut results = Vec::with_capacity(nworkers); - while let Some(res) = join_set.join_next().await { results.push(res.expect("joined ok")); } - let results = results.into_iter().collect::, _>>(); match exit { From 0db6f0c887bd8ff69bc775391f9367d60f3f95cc Mon Sep 17 00:00:00 2001 From: --show-origin Date: Thu, 18 Jul 2024 23:20:22 +0400 Subject: [PATCH 165/175] Add test for re-used Worker --- src/worker/mod.rs | 3 ++- tests/consumer.rs | 69 ++++++++++++++++++++++++++++++++++++++--------- tests/mock/mod.rs | 29 +++++++++++++++++--- 3 files changed, 84 insertions(+), 17 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 8c886e10..75493557 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -420,6 +420,7 @@ impl< } let maybe_shutdown_signal = self.shutdown_signal.clone(); + let maybe_shutdown_timeout = self.shutdown_timeout; let report = tokio::select! { // A signal from the user space received. @@ -428,7 +429,7 @@ impl< signal.lock().await.as_mut().await; }, if maybe_shutdown_signal.is_some() => { let nrunning = tokio::select! { - _ = tokio_sleep(self.shutdown_timeout.unwrap()), if self.shutdown_timeout.is_some() => { + _ = async { tokio_sleep(maybe_shutdown_timeout.unwrap()).await; }, if maybe_shutdown_timeout.is_some() => { 0 }, nrunning = self.force_fail_all_workers("termination signal received from user space") => { diff --git a/tests/consumer.rs b/tests/consumer.rs index dc67cac8..3c4c4653 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -57,8 +57,9 @@ mod mock; use faktory::*; -use std::{io, time::Duration}; -use tokio::{spawn, time::sleep}; +use std::{io, sync::Arc, time::Duration}; +use tokio::{spawn, sync::Mutex, time::sleep}; +use tokio_util::sync::CancellationToken; #[tokio::test(flavor = "multi_thread")] async fn hello() { @@ -544,16 +545,26 @@ async fn terminate() { #[tokio::test(flavor = "multi_thread")] async fn heart_broken() { - // prepare streams for main and worker, though we do not - // care about the latter in this test - let mut s = mock::Stream::new(2); + // prepare streams for a coordinator, a worker, and potentially another yet + // another worker + let mut s = mock::Stream::new_unchecked(3); + + // create a token + let token = CancellationToken::new(); + let child_token = token.child_token(); + + // create a signalling future + let signal = async move { child_token.cancelled().await }; // prepare a worker without any handlers - let mut w: Worker<_, io::Error> = Worker::builder() - .register_fn("foobar", |_| async move { + let w: Worker<_, io::Error> = Worker::builder() + .with_graceful_shutdown(signal) + .shutdown_timeout(Duration::from_millis(500)) + .register_fn("foobar", |_j| async move { // this magic 7 means: give the coordinating worker (and namely its heartbeat task) // just enough time to send a heartbeat message to the server and get disappointed // with the server response + println!("{:?}", _j); sleep(Duration::from_secs(7)).await; Ok(()) }) @@ -581,9 +592,11 @@ async fn heart_broken() { s.ignore(0); // start consuming - let jh = spawn(async move { w.run(&["default"]).await }); + let w = Arc::new(Mutex::new(w)); + let w_clone = w.clone(); + let jh = spawn(async move { w_clone.lock().await.run(&["default"]).await }); - // ack that the worker has received a job + // ack that the worker has processed the job s.ok(1); // as if the Fatory sent non-sense in reply to the HEARTBEAT message, @@ -594,7 +607,7 @@ async fn heart_broken() { // at this point the `Worker::run` should have return control // with an error rather that `StopDetails`, because the run was discontinued // due to protocol error rather than a signal from the user code or the Faktory server - let error = jh.await.unwrap().unwrap_err(); + let error = jh.await.expect("joined ok").unwrap_err(); match error { Error::Protocol(error::Protocol::BadType { expected, received }) => { @@ -604,7 +617,39 @@ async fn heart_broken() { e => unreachable!("{:?}", e), } - // we can run the same worker again and this will not cause a panic + s.pop_bytes_written(0); // HEARTBEAT 1 - // TODO! + // again, as if some producing client has enqueued a job + s.push_bytes_to_read( + 2, + b"$186\r\n\ + {\ + \"jid\":\"ornever\",\ + \"queue\":\"default\",\ + \"jobtype\":\"foobar\",\ + \"args\":[],\ + \"created_at\":\"2024-07-18T17:41:36.772981326Z\",\ + \"enqueued_at\":\"2024-07-18T17:41:36.773318394Z\",\ + \"reserve_for\":600,\ + \"retry\":25\ + }\r\n", + ); + + // we can re-run the worker and this will not cause a panic since this worker + // was not marked as terminated, so let's start consuming (reminder: we got one vacant stream) + let jh = spawn(async move { w.lock().await.run(&["default"]).await }); + + // give the newly spawned "processing" worker some time to consume the job and ... + tokio::time::sleep(Duration::from_secs(1)).await; + + // ... send a signal to return control + token.cancel(); + + let stop_details = jh + .await + .expect("joined ok") + .expect("stop details rather than error"); + assert_eq!(stop_details.stop_reason, StopReason::GracefulShutdown); + // the worker was still processing the job + assert_eq!(stop_details.nrunning, 1); } diff --git a/tests/mock/mod.rs b/tests/mock/mod.rs index f3858585..e1a940d4 100644 --- a/tests/mock/mod.rs +++ b/tests/mock/mod.rs @@ -12,6 +12,7 @@ mod inner; pub struct Stream { mine: inner::MockStream, all: Arc>, + check_count: bool, } impl Default for Stream { @@ -32,6 +33,7 @@ impl Reconnect for Stream { Ok(Stream { mine, all: Arc::clone(&self.all), + check_count: self.check_count, }) } } @@ -75,7 +77,7 @@ impl AsyncWrite for Stream { } impl Stream { - fn make(salt: Option<(usize, &str)>, streams: usize) -> Self { + fn make(salt: Option<(usize, &str)>, streams: usize, check_count: bool) -> Self { let streams = (0..streams) .map(|_| { let mut s = inner::MockStream::default(); @@ -107,15 +109,32 @@ impl Stream { Stream { mine, all: Arc::new(Mutex::new(inner)), + check_count, } } pub fn new(streams: usize) -> Self { - Self::make(None, streams) + Self::make(None, streams, true) + } + + /// Use this method if you want to opt out of comparing the number of used streams with the number of + /// initially allocated streams when `Stream` is being dropped (see [`Stream::drop`]). + /// + /// We are normally doing this sanity check just to make sure the test went as we expected, + /// like the number of spawned workers was correct (since each worker will get a dedicated strem). + /// + /// There is at least one scenario though where you will want to avoid this check. Imagine, the "coordinating" + /// worker is still there but a "processing" worker has been dropped, due to some protocol error. They can still + /// try and `Worker::run` the coordinator again and - since it has not been previously marked as terminated - the + /// coordinator will spawn another worker, and this can in theory repeat however many times as long as we have + /// allocated enough streams in [`Stream::all`]. So, in this scenario, we do not want to run our usual check whenever + /// a processing worker is being dropped. + pub fn new_unchecked(stream: usize) -> Self { + Self::make(None, stream, false) } pub fn with_salt(iters: usize, salt: &str) -> Self { - Self::make(Some((iters, salt)), 1) + Self::make(Some((iters, salt)), 1, true) } pub fn ok(&mut self, stream: usize) { @@ -138,6 +157,8 @@ impl Stream { impl Drop for Stream { fn drop(&mut self) { let x = self.all.lock().unwrap(); - assert_eq!(x.take_next, x.streams.len()); + if self.check_count { + assert_eq!(x.take_next, x.streams.len()); + } } } From e6f07ce92db8046949ce087dbc7eadc9f7aff22d Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 19 Jul 2024 10:13:16 +0400 Subject: [PATCH 166/175] StopDetails::stop_reason -> StopDetails::reason --- src/worker/stop.rs | 11 ++++------- tests/consumer.rs | 10 +++++----- tests/real/community.rs | 2 +- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/worker/stop.rs b/src/worker/stop.rs index cfe6553f..fa958617 100644 --- a/src/worker/stop.rs +++ b/src/worker/stop.rs @@ -24,18 +24,15 @@ pub enum StopReason { /// Holds some details aroung a worker's run stoppage, such as the reason why this worker discontinued /// and the number of workers that might still be processing jobs at that instant. pub struct StopDetails { - /// A [`reason`](StopReason) why the worker's runu has discontinued. - pub stop_reason: StopReason, + /// A [`reason`](StopReason) why the worker's run has discontinued. + pub reason: StopReason, /// The number of workers that might still be processing jobs. pub nrunning: usize, } impl StopDetails { - pub(crate) fn new(stop_reason: StopReason, nrunning: usize) -> Self { - StopDetails { - stop_reason, - nrunning, - } + pub(crate) fn new(reason: StopReason, nrunning: usize) -> Self { + StopDetails { reason, nrunning } } } diff --git a/tests/consumer.rs b/tests/consumer.rs index 3c4c4653..ea3b1081 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -261,7 +261,7 @@ async fn well_behaved() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. let details = jh.await.unwrap().unwrap(); - assert_eq!(details.stop_reason, StopReason::ServerInstruction); + assert_eq!(details.reason, StopReason::ServerInstruction); assert_eq!(details.nrunning, 0); // heartbeat should have seen two beats (quiet + terminate) @@ -330,7 +330,7 @@ async fn no_first_job() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. let details = jh.await.unwrap().unwrap(); - assert_eq!(details.stop_reason, StopReason::ServerInstruction); + assert_eq!(details.reason, StopReason::ServerInstruction); assert_eq!(details.nrunning, 0); // heartbeat should have seen two beats (quiet + terminate) @@ -409,7 +409,7 @@ async fn well_behaved_many() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. let details = jh.await.unwrap().unwrap(); - assert_eq!(details.stop_reason, StopReason::ServerInstruction); + assert_eq!(details.reason, StopReason::ServerInstruction); assert_eq!(details.nrunning, 0); // heartbeat should have seen two beats (quiet + terminate) @@ -495,7 +495,7 @@ async fn terminate() { // at this point, c.run() should immediately return with Ok(1) indicating that one job is still // running. let details = jh.await.unwrap().unwrap(); - assert_eq!(details.stop_reason, StopReason::ServerInstruction); + assert_eq!(details.reason, StopReason::ServerInstruction); assert_eq!(details.nrunning, 1); // Heartbeat Thread (stream with index 0). @@ -649,7 +649,7 @@ async fn heart_broken() { .await .expect("joined ok") .expect("stop details rather than error"); - assert_eq!(stop_details.stop_reason, StopReason::GracefulShutdown); + assert_eq!(stop_details.reason, StopReason::GracefulShutdown); // the worker was still processing the job assert_eq!(stop_details.nrunning, 1); } diff --git a/tests/real/community.rs b/tests/real/community.rs index f5903f9e..8e47fd3f 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -675,7 +675,7 @@ async fn test_shutdown_signals_handling() { // one worker was processing a task when we interrupted it let stop_details = jh.await.expect("joined ok").unwrap(); - assert_eq!(stop_details.stop_reason, StopReason::GracefulShutdown); + assert_eq!(stop_details.reason, StopReason::GracefulShutdown); assert_eq!(stop_details.nrunning, 1); } From e0cb357e3c3f7ce0e25f7d5dc2f3af5b4d9aaddf Mon Sep 17 00:00:00 2001 From: --show-origin Date: Fri, 19 Jul 2024 10:13:57 +0400 Subject: [PATCH 167/175] StopDetails::stop_reason -> StopDetails::reason --- src/worker/builder.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 5f8621be..4cfad998 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -147,7 +147,7 @@ impl WorkerBuilder { /// /// // learn the stop reason and the number of workers that were still running /// let stop_details = jh.await.expect("joined ok").unwrap(); - /// assert_eq!(stop_details.stop_reason, StopReason::GracefulShutdown); + /// assert_eq!(stop_details.reason, StopReason::GracefulShutdown); /// let _nrunning = stop_details.nrunning; /// # }); /// ``` From 89440985f39b62ce1b21bf76c34cd2fbf823b64e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Sun, 21 Jul 2024 12:16:47 +0500 Subject: [PATCH 168/175] Update src/worker/stop.rs Co-authored-by: Jon Gjengset --- src/worker/stop.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/stop.rs b/src/worker/stop.rs index fa958617..92959c8b 100644 --- a/src/worker/stop.rs +++ b/src/worker/stop.rs @@ -28,7 +28,7 @@ pub struct StopDetails { pub reason: StopReason, /// The number of workers that might still be processing jobs. - pub nrunning: usize, + pub workers_still_running: usize, } impl StopDetails { From 5839952eb4a380bb0db45010286fdb61207e3883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Sun, 21 Jul 2024 12:17:08 +0500 Subject: [PATCH 169/175] Update src/worker/stop.rs Co-authored-by: Jon Gjengset --- src/worker/stop.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/worker/stop.rs b/src/worker/stop.rs index 92959c8b..847d4171 100644 --- a/src/worker/stop.rs +++ b/src/worker/stop.rs @@ -24,7 +24,7 @@ pub enum StopReason { /// Holds some details aroung a worker's run stoppage, such as the reason why this worker discontinued /// and the number of workers that might still be processing jobs at that instant. pub struct StopDetails { - /// A [`reason`](StopReason) why the worker's run has discontinued. + /// The [reason](StopReason) why the worker's run has discontinued. pub reason: StopReason, /// The number of workers that might still be processing jobs. From 4c125b6edbe3338b92cea26b45ed9ac7b3ea65de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavie=C5=82=20Michalkievi=C4=8D?= <117771945+rustworthy@users.noreply.github.com> Date: Sun, 21 Jul 2024 12:17:33 +0500 Subject: [PATCH 170/175] Update src/worker/stop.rs Co-authored-by: Jon Gjengset --- src/worker/stop.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/worker/stop.rs b/src/worker/stop.rs index 847d4171..7037f73a 100644 --- a/src/worker/stop.rs +++ b/src/worker/stop.rs @@ -13,9 +13,9 @@ pub enum StopReason { /// The Faktory server asked us to shut down. /// - /// Under the hood, the worker is being in constant communication with the Faktory server, - /// not only fetching jobs and reporting on processing results, but also listening for - /// the server's instructions, one of which can be to disengage (e.g., to indicate that the + /// Under the hood, the worker is in constant communication with the Faktory server. + /// It fetches jobs and reports on processing results, but also listens for the server's + /// instructions. One of those instructions can be to disengage (e.g., to indicate that the /// server is shutting down. ServerInstruction, } From 529812c6af62c759ce3dd7b5d7670e6d2088f144 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 21 Jul 2024 11:24:28 +0400 Subject: [PATCH 171/175] Adjust code to use StopDetails::workers_still_running --- src/worker/builder.rs | 2 +- src/worker/mod.rs | 4 ++-- src/worker/stop.rs | 5 ++++- tests/consumer.rs | 10 +++++----- tests/real/community.rs | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/worker/builder.rs b/src/worker/builder.rs index 4cfad998..adf4988c 100644 --- a/src/worker/builder.rs +++ b/src/worker/builder.rs @@ -148,7 +148,7 @@ impl WorkerBuilder { /// // learn the stop reason and the number of workers that were still running /// let stop_details = jh.await.expect("joined ok").unwrap(); /// assert_eq!(stop_details.reason, StopReason::GracefulShutdown); - /// let _nrunning = stop_details.nrunning; + /// let _nrunning = stop_details.workers_still_running; /// # }); /// ``` pub fn with_graceful_shutdown(mut self, signal: F) -> Self diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 75493557..01b59acd 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -385,8 +385,8 @@ impl< /// supplied to [`WorkerBuilder::with_graceful_shutdown`](`Ok` is returned). /// /// The value in an `Ok` holds [`details`](StopDetails) about the reason why the run has discontinued (see [`StopReason`]) - /// and the number of workers that may still be processing jobs. Note that `0` in [`StopDetails::nrunning`] can also indicate that - /// the [graceful shutdown period](WorkerBuilder::shutdown_timeout) has been exceeded. + /// and the number of workers that may still be processing jobs. Note that `0` in [`StopDetails::workers_still_running`] + /// can also indicate that the [graceful shutdown period](WorkerBuilder::shutdown_timeout) has been exceeded. /// /// If an error occurred while reporting a job success or failure, the result will be re-reported to the server /// without re-executing the job. If the worker was terminated (i.e., `run` returns with an `Ok` response), diff --git a/src/worker/stop.rs b/src/worker/stop.rs index 7037f73a..57a55da3 100644 --- a/src/worker/stop.rs +++ b/src/worker/stop.rs @@ -33,6 +33,9 @@ pub struct StopDetails { impl StopDetails { pub(crate) fn new(reason: StopReason, nrunning: usize) -> Self { - StopDetails { reason, nrunning } + StopDetails { + reason, + workers_still_running: nrunning, + } } } diff --git a/tests/consumer.rs b/tests/consumer.rs index ea3b1081..d1824962 100644 --- a/tests/consumer.rs +++ b/tests/consumer.rs @@ -262,7 +262,7 @@ async fn well_behaved() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. let details = jh.await.unwrap().unwrap(); assert_eq!(details.reason, StopReason::ServerInstruction); - assert_eq!(details.nrunning, 0); + assert_eq!(details.workers_still_running, 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -331,7 +331,7 @@ async fn no_first_job() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. let details = jh.await.unwrap().unwrap(); assert_eq!(details.reason, StopReason::ServerInstruction); - assert_eq!(details.nrunning, 0); + assert_eq!(details.workers_still_running, 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -410,7 +410,7 @@ async fn well_behaved_many() { // at this point, c.run() should eventually return with Ok(0) indicating that it finished. let details = jh.await.unwrap().unwrap(); assert_eq!(details.reason, StopReason::ServerInstruction); - assert_eq!(details.nrunning, 0); + assert_eq!(details.workers_still_running, 0); // heartbeat should have seen two beats (quiet + terminate) let written = s.pop_bytes_written(0); @@ -496,7 +496,7 @@ async fn terminate() { // running. let details = jh.await.unwrap().unwrap(); assert_eq!(details.reason, StopReason::ServerInstruction); - assert_eq!(details.nrunning, 1); + assert_eq!(details.workers_still_running, 1); // Heartbeat Thread (stream with index 0). // @@ -651,5 +651,5 @@ async fn heart_broken() { .expect("stop details rather than error"); assert_eq!(stop_details.reason, StopReason::GracefulShutdown); // the worker was still processing the job - assert_eq!(stop_details.nrunning, 1); + assert_eq!(stop_details.workers_still_running, 1); } diff --git a/tests/real/community.rs b/tests/real/community.rs index 8e47fd3f..e1d14457 100644 --- a/tests/real/community.rs +++ b/tests/real/community.rs @@ -676,7 +676,7 @@ async fn test_shutdown_signals_handling() { // one worker was processing a task when we interrupted it let stop_details = jh.await.expect("joined ok").unwrap(); assert_eq!(stop_details.reason, StopReason::GracefulShutdown); - assert_eq!(stop_details.nrunning, 1); + assert_eq!(stop_details.workers_still_running, 1); } #[tokio::test(flavor = "multi_thread")] From 4c4dd586065d4ff508c0e735dcdf3369d62258f4 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 21 Jul 2024 11:30:14 +0400 Subject: [PATCH 172/175] Mark StopDetails as non_exhaustive --- src/worker/stop.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/worker/stop.rs b/src/worker/stop.rs index 57a55da3..228a214f 100644 --- a/src/worker/stop.rs +++ b/src/worker/stop.rs @@ -1,7 +1,7 @@ #[cfg(doc)] use super::{Worker, WorkerBuilder}; -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] /// A reason why [`Worker::run`] has discontinued. #[non_exhaustive] pub enum StopReason { @@ -9,6 +9,7 @@ pub enum StopReason { /// /// A future provided via [`WorkerBuilder::with_graceful_shutdown`] has resolved /// signalling the worker to stop. + #[default] GracefulShutdown, /// The Faktory server asked us to shut down. @@ -20,9 +21,10 @@ pub enum StopReason { ServerInstruction, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] /// Holds some details aroung a worker's run stoppage, such as the reason why this worker discontinued /// and the number of workers that might still be processing jobs at that instant. +#[non_exhaustive] pub struct StopDetails { /// The [reason](StopReason) why the worker's run has discontinued. pub reason: StopReason, From 4415e607a373d8b16526331803da533cb7111307 Mon Sep 17 00:00:00 2001 From: --show-origin Date: Sun, 21 Jul 2024 12:04:28 +0400 Subject: [PATCH 173/175] Disallow Worker::run_one on a terminated worker --- src/worker/mod.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 01b59acd..3057b3cf 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -289,10 +289,20 @@ impl } /// Fetch and run a single job, and then return. + /// + /// Note that if you called [`Worker::run`] on this worker previously and the run + /// discontinued due to a signal from the Faktory server or a graceful shutdown signal, + /// calling this method will mean you are trying to run a _terminated_ worker which will + /// cause a panic. You will need to build and run a new worker instead. pub async fn run_one(&mut self, worker: usize, queues: &[Q]) -> Result where Q: AsRef + Sync, { + assert!( + !self.terminated, + "do not re-run a terminated worker (coordinator)" + ); + let job = match self.c.fetch(queues).await? { None => return Ok(false), Some(j) => j, From 8de6397a497e6bab43ae522ea1490582c032b289 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 21 Jul 2024 12:13:48 +0200 Subject: [PATCH 174/175] Avoid Arc for shutdown_signal --- src/worker/mod.rs | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 3057b3cf..1e76196e 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -10,7 +10,6 @@ use std::time::Duration; use std::{error::Error as StdError, sync::atomic::AtomicUsize}; use tokio::io::{AsyncBufRead, AsyncWrite}; use tokio::net::TcpStream; -use tokio::sync::Mutex; use tokio::task::{spawn_blocking, AbortHandle, JoinError, JoinSet}; use tokio::time::sleep as tokio_sleep; @@ -165,7 +164,10 @@ pub struct Worker { terminated: bool, forever: bool, shutdown_timeout: Option, - shutdown_signal: Option>>, + + // NOTE: this is always `Some` if `self.terminated == false` whenever any `pub` function + // on this type returns. it is `Some(std::future::pending())` if no shutdown signaler is set. + shutdown_signal: Option, } impl Worker { @@ -198,7 +200,9 @@ impl Worker { terminated: false, forever: false, shutdown_timeout, - shutdown_signal: shutdown_signal.map(|signal| Arc::new(Mutex::new(signal))), + shutdown_signal: Some( + shutdown_signal.unwrap_or_else(|| Box::pin(std::future::pending())), + ), } } } @@ -360,7 +364,7 @@ impl< terminated: self.terminated, forever: self.forever, shutdown_timeout: self.shutdown_timeout, - shutdown_signal: None, + shutdown_signal: Some(Box::pin(std::future::pending())), }) } @@ -429,15 +433,20 @@ impl< .await?; } - let maybe_shutdown_signal = self.shutdown_signal.clone(); + // the only place `shutdown_signal` is set to `None` is when we `.take()` it here. + // later on, we maintain the invariant that either `self.terminated` is set to `true` OR we + // restore `shutdown_signal` to `Some` (such as if the heartbeat future fails). in the + // former case, we'll never hit this `.take()` again due to the `assert` above, and in the + // latter case the `take()` will yet again succeed. + let mut shutdown_signal = self + .shutdown_signal + .take() + .expect("see shutdown_signal comment"); let maybe_shutdown_timeout = self.shutdown_timeout; let report = tokio::select! { // A signal from the user space received. - _ = async { - let signal = maybe_shutdown_signal.unwrap(); - signal.lock().await.as_mut().await; - }, if maybe_shutdown_signal.is_some() => { + _ = &mut shutdown_signal => { let nrunning = tokio::select! { _ = async { tokio_sleep(maybe_shutdown_timeout.unwrap()).await; }, if maybe_shutdown_timeout.is_some() => { 0 @@ -462,6 +471,8 @@ impl< // note that if it is an error from heartbeat(), the worker will _not_ be marked as // terminated and _can_ be restarted self.terminated = exit.is_ok(); + // restore shutdown signal since it has not resolved + self.shutdown_signal = Some(shutdown_signal); if let Ok(true) = exit { let nrunning = self.force_fail_all_workers("terminated").await; From 6eb5b1726af3ac0a20861a29f51a0fb75f79e5b5 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sun, 21 Jul 2024 13:09:26 +0200 Subject: [PATCH 175/175] Also handle panics --- src/worker/mod.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/worker/mod.rs b/src/worker/mod.rs index 1e76196e..80efe0c4 100644 --- a/src/worker/mod.rs +++ b/src/worker/mod.rs @@ -442,6 +442,9 @@ impl< .shutdown_signal .take() .expect("see shutdown_signal comment"); + // we set terminated = true proactively to maintain the invariant with shutdown_signal even + // in the case of a panic. it gets set to false in the heartbeat error case. + self.terminated = true; let maybe_shutdown_timeout = self.shutdown_timeout; let report = tokio::select! { @@ -455,7 +458,6 @@ impl< nrunning } }; - self.terminated = true; Ok(stop::StopDetails::new(StopReason::GracefulShutdown, nrunning)) }, // A signal from the Faktory server received or an error occurred. @@ -470,7 +472,9 @@ impl< // // note that if it is an error from heartbeat(), the worker will _not_ be marked as // terminated and _can_ be restarted - self.terminated = exit.is_ok(); + if exit.is_err() { + self.terminated = false; + } // restore shutdown signal since it has not resolved self.shutdown_signal = Some(shutdown_signal);