[INFO] fetching crate ankurah-jwt-auth 0.9.0...
[INFO] testing ankurah-jwt-auth-0.9.0 against 1.98.0-beta.6+cargoflags=--release for beta-1.98-release-3
[INFO] extracting crate ankurah-jwt-auth 0.9.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate ankurah-jwt-auth 0.9.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate ankurah-jwt-auth 0.9.0
[INFO] tweaked toml for crates.io crate ankurah-jwt-auth 0.9.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate ankurah-jwt-auth 0.9.0 on toolchain 1.98.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ankurah-jwt-auth 0.9.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d
[INFO] running `Command { std: "docker" "start" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.6" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling ff v0.13.1
[INFO] [stderr]    Compiling base16ct v0.2.0
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling sec1 v0.7.3
[INFO] [stderr]    Compiling group v0.13.0
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling crypto-bigint v0.5.5
[INFO] [stderr]    Compiling hybrid-array v0.4.7
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling elliptic-curve v0.13.8
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling async-lock v3.4.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling inout v0.2.2
[INFO] [stderr]    Compiling crypto-common v0.2.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling reactive_graph v0.2.11
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling rfc6979 v0.4.0
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling cipher v0.5.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling ecdsa v0.16.9
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling send_wrapper v0.6.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling pest v2.8.4
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling ulid v1.2.1
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling any_spawner v0.3.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling cpubits v0.1.0
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling or_poisoned v0.1.0
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling guardian v1.3.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling pest_meta v2.8.4
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling aes v0.9.0-rc.4
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling pest_generator v2.8.4
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling gensym v0.1.1
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling pest_derive v2.8.4
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling primeorder v0.13.6
[INFO] [stderr]    Compiling ankql v0.9.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling smallstr v0.3.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling discard v1.0.4
[INFO] [stderr]    Compiling arc-swap v1.7.1
[INFO] [stderr]    Compiling futures-signals v0.3.34
[INFO] [stderr]    Compiling yrs v0.24.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling aes-keywrap v0.9.0
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling ron v0.11.0
[INFO] [stderr]    Compiling rsa v0.9.10
[INFO] [stderr]    Compiling ankurah-proto v0.9.0
[INFO] [stderr]    Compiling ankurah-signals v0.9.0
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling hmac-sha512 v1.1.12
[INFO] [stderr]    Compiling hmac-sha256 v1.1.14
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling ct-codecs v1.1.6
[INFO] [stderr]    Compiling constant_time_eq v0.4.2
[INFO] [stderr]    Compiling append-only-vec v0.1.8
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling blake2b_simd v1.0.4
[INFO] [stderr]    Compiling ed25519-compact v2.2.0
[INFO] [stderr]    Compiling superboring v0.1.7
[INFO] [stderr]    Compiling ankurah-derive v0.9.0
[INFO] [stderr]    Compiling ankurah-core v0.9.0
[INFO] [stderr]    Compiling p384 v0.13.1
[INFO] [stderr]    Compiling p256 v0.13.2
[INFO] [stderr]    Compiling k256 v0.13.4
[INFO] [stderr]    Compiling coarsetime v0.1.37
[INFO] [stderr]    Compiling binstring v0.1.7
[INFO] [stderr]    Compiling hmac-sha1-compact v1.1.7
[INFO] [stderr]    Compiling jwt-simple v0.12.13
[INFO] [stderr]    Compiling ankurah v0.9.0
[INFO] [stderr]    Compiling ankurah-jwt-auth v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 30.84s
[INFO] running `Command { std: "docker" "inspect" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.7
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling cc v1.2.49
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling constant_time_eq v0.3.1
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling sled v0.34.7
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling ankurah-proto v0.9.0
[INFO] [stderr]    Compiling ankurah-signals v0.9.0
[INFO] [stderr]    Compiling ankurah-core v0.9.0
[INFO] [stderr]    Compiling ankurah v0.9.0
[INFO] [stderr]    Compiling ankurah-storage-common v0.9.0
[INFO] [stderr]    Compiling ankurah-connector-local-process v0.9.0
[INFO] [stderr]    Compiling ankurah-jwt-auth v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling ankurah-storage-sled v0.9.0
[INFO] [stdout] warning: function `test_keys` is never used
[INFO] [stdout]   --> tests/common.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn test_keys() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_a.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blog_config_path` is never used
[INFO] [stdout]   --> tests/common.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn blog_config_path() -> String { format!("{}/tests/fixtures/simple_blog.json", env!("CARGO_MANIFEST_DIR")) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_claims` is never used
[INFO] [stdout]   --> tests/common.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn make_claims(sub: &str, roles: &[&str], email: &str) -> JwtClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_token` is never used
[INFO] [stdout]   --> tests/common.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_claims` is never used
[INFO] [stdout]   --> tests/common.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn make_claims(sub: &str, roles: &[&str], email: &str) -> JwtClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_token` is never used
[INFO] [stdout]   --> tests/common.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blog_config_path` is never used
[INFO] [stdout]   --> tests/common.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn blog_config_path() -> String { format!("{}/tests/fixtures/simple_blog.json", env!("CARGO_MANIFEST_DIR")) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_claims` is never used
[INFO] [stdout]   --> tests/common.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn make_claims(sub: &str, roles: &[&str], email: &str) -> JwtClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_token` is never used
[INFO] [stdout]   --> tests/common.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_token` is never used
[INFO] [stdout]   --> tests/common.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blog_config_path` is never used
[INFO] [stdout]   --> tests/common.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn blog_config_path() -> String { format!("{}/tests/fixtures/simple_blog.json", env!("CARGO_MANIFEST_DIR")) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blog_config_path` is never used
[INFO] [stdout]   --> tests/common.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn blog_config_path() -> String { format!("{}/tests/fixtures/simple_blog.json", env!("CARGO_MANIFEST_DIR")) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_claims` is never used
[INFO] [stdout]   --> tests/common.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn make_claims(sub: &str, roles: &[&str], email: &str) -> JwtClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_token` is never used
[INFO] [stdout]   --> tests/common.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blog_config_path` is never used
[INFO] [stdout]   --> tests/common.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn blog_config_path() -> String { format!("{}/tests/fixtures/simple_blog.json", env!("CARGO_MANIFEST_DIR")) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_claims` is never used
[INFO] [stdout]   --> tests/common.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn make_claims(sub: &str, roles: &[&str], email: &str) -> JwtClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_token` is never used
[INFO] [stdout]   --> tests/common.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blog_config_path` is never used
[INFO] [stdout]   --> tests/common.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn blog_config_path() -> String { format!("{}/tests/fixtures/simple_blog.json", env!("CARGO_MANIFEST_DIR")) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_claims` is never used
[INFO] [stdout]   --> tests/common.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn make_claims(sub: &str, roles: &[&str], email: &str) -> JwtClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_token` is never used
[INFO] [stdout]   --> tests/common.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_keys_alt` is never used
[INFO] [stdout]   --> tests/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_blog_config` is never used
[INFO] [stdout]   --> tests/common.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_minimal_config` is never used
[INFO] [stdout]   --> tests/common.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_claims` is never used
[INFO] [stdout]   --> tests/common.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn make_claims(sub: &str, roles: &[&str], email: &str) -> JwtClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_token` is never used
[INFO] [stdout]   --> tests/common.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_predicate` is never used
[INFO] [stdout]   --> tests/common.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 52.47s
[INFO] running `Command { std: "docker" "inspect" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.6" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: function `test_keys_alt` is never used
[INFO] [stderr]   --> tests/common.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_blog_config` is never used
[INFO] [stderr]   --> tests/common.rs:18:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_minimal_config` is never used
[INFO] [stderr]   --> tests/common.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn load_minimal_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_minimal.json")).unwrap() }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_claims` is never used
[INFO] [stderr]   --> tests/common.rs:22:8
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub fn make_claims(sub: &str, roles: &[&str], email: &str) -> JwtClaims {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sign_token` is never used
[INFO] [stderr]   --> tests/common.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub fn sign_token(keys: &SigningKeys, claims: &JwtClaims) -> String { keys.sign(claims, Duration::from_hours(1)).unwrap() }
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_predicate` is never used
[INFO] [stderr]   --> tests/common.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn make_predicate(input: &str) -> Predicate { ankql::parser::parse_selection(input).unwrap().predicate }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `test_keys` is never used
[INFO] [stderr]   --> tests/common.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn test_keys() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_a.pem")).unwrap() }
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `test_keys_alt` is never used
[INFO] [stderr]   --> tests/common.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub fn test_keys_alt() -> SigningKeys { SigningKeys::from_pem(include_str!("fixtures/test_key_b.pem")).unwrap() }
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `blog_config_path` is never used
[INFO] [stderr]   --> tests/common.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub fn blog_config_path() -> String { format!("{}/tests/fixtures/simple_blog.json", env!("CARGO_MANIFEST_DIR")) }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "context_tests") generated 6 warnings
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "config_tests") generated 6 warnings (3 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "scoped_live_update_tests") generated 7 warnings (7 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "filter_predicate_tests") generated 5 warnings (5 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "node_policy_sync_tests") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "scope_rule_ops_tests") generated 5 warnings (5 duplicates)
[INFO] [stderr] warning: function `load_blog_config` is never used
[INFO] [stderr]   --> tests/common.rs:18:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub fn load_blog_config() -> PolicyConfig { serde_json::from_str(include_str!("fixtures/simple_blog.json")).unwrap() }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `blog_config_path` is never used
[INFO] [stderr]   --> tests/common.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub fn blog_config_path() -> String { format!("{}/tests/fixtures/simple_blog.json", env!("CARGO_MANIFEST_DIR")) }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "filter_predicate_custom_tests") generated 6 warnings (6 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "adversarial_tests") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "scoped_fetch_repro") generated 7 warnings (7 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "node_tests") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "keys_tests") generated 6 warnings (5 duplicates)
[INFO] [stderr] warning: `ankurah-jwt-auth` (test "adversarial_rbac_tests") generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.28s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/ankurah_jwt_auth-c71fbab6fc9c132b)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test variables::tests::test_missing_custom_claim ... ok
[INFO] [stdout] test variables::tests::test_non_string_custom_claim_rejected ... ok
[INFO] [stdout] test variables::tests::test_substitute_jwt_name_missing_fails ... ok
[INFO] [stdout] test variables::tests::test_substitute_jwt_email ... ok
[INFO] [stdout] test variables::tests::test_substitute_jwt_custom ... ok
[INFO] [stdout] test variables::tests::test_substitute_jwt_name ... ok
[INFO] [stdout] test variables::tests::test_injection_payload_becomes_inert_literal ... ok
[INFO] [stdout] test variables::tests::test_literal_placeholder_in_filter_fails_closed ... ok
[INFO] [stdout] test variables::tests::test_entity_id_value_becomes_typed_literal ... ok
[INFO] [stdout] test variables::tests::test_apostrophe_value_is_inert ... ok
[INFO] [stdout] test variables::tests::test_substitute_jwt_sub ... ok
[INFO] [stdout] test variables::tests::test_substitute_multiple_variables ... ok
[INFO] [stdout] test variables::tests::test_unknown_variable ... ok
[INFO] [stdout] test variables::tests::test_substitute_special_chars_in_sub ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/adversarial_rbac_tests.rs (/opt/rustwide/target/release/deps/adversarial_rbac_tests-70df588975196c42)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_nouser_can_read_jwtpolicy_but_not_other_collections ... ok
[INFO] [stdout] test test_nouser_cannot_write_anything ... ok
[INFO] [stdout] test test_root_context_cannot_be_sent_over_wire ... ok
[INFO] [stdout] test test_reader_cannot_write_to_user_collection ... ok
[INFO] [stdout] test test_non_privileged_cannot_write_jwtpolicy ... ok
[INFO] [stdout] test test_reader_cannot_write_post_via_ephemeral ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/adversarial_tests.rs (/opt/rustwide/target/release/deps/adversarial_tests-8f472e2b64c4fecd)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_server_rejects_garbage_auth_data ... ok
[INFO] [stdout] test test_server_rejects_wrongly_signed_token ... ok
[INFO] [stdout] test test_server_rejects_expired_token ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/common.rs (/opt/rustwide/target/release/deps/common-14453fdd243ee780)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/config_tests.rs (/opt/rustwide/target/release/deps/config_tests-2cabe60cfb945e51)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test test_default_config_is_empty ... ok
[INFO] [stdout] test test_editor_can_access_post_collection ... ok
[INFO] [stdout] test test_author_can_read_but_not_write_post ... ok
[INFO] [stdout] test test_load_minimal_config ... ok
[INFO] [stdout] test test_editor_can_write_post_collection ... ok
[INFO] [stdout] test test_load_blog_config ... ok
[INFO] [stdout] test test_minimal_config_wildcard_admin ... ok
[INFO] [stdout] test test_multi_role_access ... ok
[INFO] [stdout] test test_reader_can_access_comment_collection ... ok
[INFO] [stdout] test test_reader_cannot_access_post_collection ... ok
[INFO] [stdout] test test_reader_cannot_write_comment_collection ... ok
[INFO] [stdout] test test_unknown_collection_denied ... ok
[INFO] [stdout] test test_unknown_role_denied ... ok
[INFO] [stdout] test test_wildcard_privilege_grants_all_access ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/context_tests.rs (/opt/rustwide/target/release/deps/context_tests-67c612de94397b12)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_authenticated_context_auth_data ... ok
[INFO] [stdout] test test_authenticated_context_is_not_privileged ... ok
[INFO] [stdout] test test_jwt_context_accessors ... ok
[INFO] [stdout] test test_jwt_context_equality_by_sub ... ok
[INFO] [stdout] test test_nouser_context_equality ... ok
[INFO] [stdout] test test_nouser_context_has_no_identity ... ok
[INFO] [stdout] test test_nouser_context_is_not_privileged ... ok
[INFO] [stdout] test test_nouser_context_produces_empty_auth_data ... ok
[INFO] [stdout] test test_root_context_cannot_produce_auth_data ... ok
[INFO] [stdout] test test_root_context_equality ... ok
[INFO] [stdout] test test_root_context_is_privileged ... ok
[INFO] [stdout] test test_nouser_can_access_jwtpolicy_collection ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/filter_predicate_custom_tests.rs (/opt/rustwide/target/release/deps/filter_predicate_custom_tests-907ae870babab89b)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_filter_predicate_missing_claim_denied ... ok
[INFO] [stdout] test test_filter_predicate_multiple_rules_anded ... ok
[INFO] [stdout] test test_filter_predicate_custom_claim_variable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/filter_predicate_tests.rs (/opt/rustwide/target/release/deps/filter_predicate_tests-2c80f9222cbb47e6)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_filter_predicate_nouser_denied ... ok
[INFO] [stdout] test test_filter_predicate_privileged_bypasses ... ok
[INFO] [stdout] test test_filter_predicate_injection_payload_is_inert ... ok
[INFO] [stdout] test test_filter_predicate_unless_privilege_bypasses ... ok
[INFO] [stdout] test test_filter_predicate_no_scope_rules ... ok
[INFO] [stdout] test test_filter_predicate_applies_scope_rule ... ok
[INFO] [stdout] test test_filter_predicate_unconditional_scope_rule ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/keys_tests.rs (/opt/rustwide/target/release/deps/keys_tests-0c22aaa0291a0d79)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test test_parse_claims_unverified_invalid_format ... ok
[INFO] [stdout] test test_ephemeral_agent_starts_with_no_keys ... ok
[INFO] [stdout] test test_ephemeral_agent_set_keys ... ok
[INFO] [stdout] test test_public_key_pem_export ... ok
[INFO] [stdout] test test_jwt_keys_public_key_pem ... ok
[INFO] [stdout] test test_verify_garbage_token_fails ... ok
[INFO] [stdout] test test_sign_and_verify_no_name ... ok
[INFO] [stdout] test test_parse_claims_unverified ... ok
[INFO] [stdout] test test_parse_claims_unverified_no_name ... ok
[INFO] [stdout] test test_jwt_keys_verify_only ... ok
[INFO] [stdout] test test_jwt_keys_signing_variant_verify ... ok
[INFO] [stdout] test test_verify_wrong_key_fails ... ok
[INFO] [stdout] test test_sign_and_verify ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.50s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/node_policy_sync_tests.rs (/opt/rustwide/target/release/deps/node_policy_sync_tests-f1996e4129186e40)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_ephemeral_receives_policy_via_livequery ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/node_tests.rs (/opt/rustwide/target/release/deps/node_tests-331fa8aa9ae75a91)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_root_bypasses_collection_access ... ok
[INFO] [stdout] test test_root_context_bypasses_all_policy_checks ... ok
[INFO] [stdout] test test_jwt_agent_collection_access_denied ... ok
[INFO] [stdout] test test_jwt_agent_reader_cannot_write_post ... ok
[INFO] [stdout] test test_jwtpolicy_collection_always_accessible ... ok
[INFO] [stdout] test test_read_scope_denies_direct_get_for_out_of_scope_resident_entity ... ok
[INFO] [stdout] test test_jwt_agent_single_durable_node ... ok
[INFO] [stdout] test test_update_scope_requires_before_and_after_state ... ok
[INFO] [stdout] test test_write_scope_allows_matching_ref_and_denies_other_ref ... ok
[INFO] [stdout] test test_jwt_agent_durable_ephemeral_pair ... ok
[INFO] [stdout] test test_jwt_check_request_roundtrip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/scope_rule_ops_tests.rs (/opt/rustwide/target/release/deps/scope_rule_ops_tests-1c78b65652d7ea18)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test applies_to_defaults_to_read_write_and_parses ... ok
[INFO] [stdout] test write_only_scope_rule_gates_writes_not_reads ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/scoped_fetch_repro.rs (/opt/rustwide/target/release/deps/scoped_fetch_repro-eade57715f54e1e7)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test enduser_scoped_cached_fetch_over_relay ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/scoped_live_update_tests.rs (/opt/rustwide/target/release/deps/scoped_live_update_tests-e0091b1da00884e0)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test ref_scope_rule_receives_live_updates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ankurah_jwt_auth
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/model.rs - model::__ankurah_derive_impl_jwt_policy::JwtPolicyView::r (line 9) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d", kill_on_drop: false }`
[INFO] [stdout] 1c6c9c7833dea08a0bbe5e2df6f80e233d11916654f79048376f4b442dd23d5d
