[INFO] fetching crate fortress-auth-plugins 1.0.1...
[INFO] testing fortress-auth-plugins-1.0.1 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate fortress-auth-plugins 1.0.1 into /workspace/builds/worker-1-tc1/source
[INFO] removed /workspace/builds/worker-1-tc1/source/.cargo/config.toml
[INFO] started tweaking crates.io crate fortress-auth-plugins 1.0.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate fortress-auth-plugins 1.0.1
[INFO] tweaked toml for crates.io crate fortress-auth-plugins 1.0.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate fortress-auth-plugins 1.0.1 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate fortress-auth-plugins 1.0.1 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.118
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.118
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.118
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.118
[INFO] [stderr]   Downloaded js-sys v0.3.95
[INFO] [stderr]   Downloaded cc v1.2.60
[INFO] [stderr]   Downloaded rand v0.8.6
[INFO] [stderr]   Downloaded hashbrown v0.17.0
[INFO] [stderr]   Downloaded tokio v1.52.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3
[INFO] running `Command { std: "docker" "start" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3", 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" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3", 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" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling fortress-auth-plugins v1.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `base64url_decode` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn base64url_decode(data: &str) -> Result<Vec<u8>, base64::DecodeError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `USER_DATABASE` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | static mut USER_DATABASE: Option<HashMap<String, UserRecord>> = None;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_user_database` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn initialize_user_database() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_store_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn auth_store_session(session_id_ptr: *const u8, session_id_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn auth_get_session(session_id_ptr: *const u8, session_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_delete_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn auth_delete_session(session_id_ptr: *const u8, session_id_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_cache_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn auth_cache_token(token_ptr: *const u8, token_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_cached_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn auth_get_cached_token(token_ptr: *const u8, token_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_generate_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn auth_generate_token(user_id_ptr: *const u8, user_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_validate_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn auth_validate_token(token_ptr: *const u8, token_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_make_http_request` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn auth_make_http_request(url_ptr: *const u8, url_len: usize, method_ptr: *const u8, method_len: usize, body_ptr: *const u8, bo...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_id_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:302:4
[INFO] [stdout]     |
[INFO] [stdout] 302 | fn validate_id_token(id_token: &str) -> Result<OAuthUserInfo, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_store_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn auth_store_session(session_id_ptr: *const u8, session_id_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn auth_get_session(session_id_ptr: *const u8, session_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_delete_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn auth_delete_session(session_id_ptr: *const u8, session_id_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_cache_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn auth_cache_token(token_ptr: *const u8, token_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_cached_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn auth_get_cached_token(token_ptr: *const u8, token_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_http_request` is never used
[INFO] [stdout]    --> src/saml_plugin.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn make_http_request(url: &str, method: &str, body: Option<&str>) -> Result<String, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/jwt_plugin.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 249 |         if USER_DATABASE.is_none() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 29.28s
[INFO] running `Command { std: "docker" "inspect" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3", 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" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling fortress-auth-plugins v1.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `base64url_decode` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn base64url_decode(data: &str) -> Result<Vec<u8>, base64::DecodeError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `USER_DATABASE` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | static mut USER_DATABASE: Option<HashMap<String, UserRecord>> = None;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_user_database` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn initialize_user_database() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_store_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn auth_store_session(session_id_ptr: *const u8, session_id_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn auth_get_session(session_id_ptr: *const u8, session_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_delete_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn auth_delete_session(session_id_ptr: *const u8, session_id_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_cache_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn auth_cache_token(token_ptr: *const u8, token_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_cached_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn auth_get_cached_token(token_ptr: *const u8, token_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_generate_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn auth_generate_token(user_id_ptr: *const u8, user_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_validate_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn auth_validate_token(token_ptr: *const u8, token_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_make_http_request` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn auth_make_http_request(url_ptr: *const u8, url_len: usize, method_ptr: *const u8, method_len: usize, body_ptr: *const u8, bo...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_id_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:302:4
[INFO] [stdout]     |
[INFO] [stdout] 302 | fn validate_id_token(id_token: &str) -> Result<OAuthUserInfo, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_store_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn auth_store_session(session_id_ptr: *const u8, session_id_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn auth_get_session(session_id_ptr: *const u8, session_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_delete_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn auth_delete_session(session_id_ptr: *const u8, session_id_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_cache_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn auth_cache_token(token_ptr: *const u8, token_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_cached_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn auth_get_cached_token(token_ptr: *const u8, token_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_http_request` is never used
[INFO] [stdout]    --> src/saml_plugin.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn make_http_request(url: &str, method: &str, body: Option<&str>) -> Result<String, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/jwt_plugin.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 249 |         if USER_DATABASE.is_none() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `base64url_decode` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn base64url_decode(data: &str) -> Result<Vec<u8>, base64::DecodeError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `USER_DATABASE` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | static mut USER_DATABASE: Option<HashMap<String, UserRecord>> = None;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_user_database` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn initialize_user_database() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_store_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn auth_store_session(session_id_ptr: *const u8, session_id_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn auth_get_session(session_id_ptr: *const u8, session_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_delete_session` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn auth_delete_session(session_id_ptr: *const u8, session_id_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_cache_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn auth_cache_token(token_ptr: *const u8, token_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_cached_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn auth_get_cached_token(token_ptr: *const u8, token_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_generate_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn auth_generate_token(user_id_ptr: *const u8, user_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_validate_token` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn auth_validate_token(token_ptr: *const u8, token_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_make_http_request` is never used
[INFO] [stdout]    --> src/jwt_plugin.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn auth_make_http_request(url_ptr: *const u8, url_len: usize, method_ptr: *const u8, method_len: usize, body_ptr: *const u8, bo...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_id_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:302:4
[INFO] [stdout]     |
[INFO] [stdout] 302 | fn validate_id_token(id_token: &str) -> Result<OAuthUserInfo, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_store_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn auth_store_session(session_id_ptr: *const u8, session_id_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn auth_get_session(session_id_ptr: *const u8, session_id_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_delete_session` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn auth_delete_session(session_id_ptr: *const u8, session_id_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_cache_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn auth_cache_token(token_ptr: *const u8, token_len: usize, user_data_ptr: *const u8, user_data_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_get_cached_token` is never used
[INFO] [stdout]    --> src/oauth_plugin.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn auth_get_cached_token(token_ptr: *const u8, token_len: usize, out_ptr: *mut u8, out_len: usize) -> i32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_http_request` is never used
[INFO] [stdout]    --> src/saml_plugin.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn make_http_request(url: &str, method: &str, body: Option<&str>) -> Result<String, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/jwt_plugin.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 249 |         if USER_DATABASE.is_none() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/integration_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> tests/integration_tests.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]    --> tests/integration_tests.rs:247:48
[INFO] [stdout]     |
[INFO] [stdout] 247 |         format!("header.{}.signature", base64::encode(user_id))
[INFO] [stdout]     |                                                ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `supported_methods` on type `fortress_auth_plugins::PluginCapabilities`
[INFO] [stdout]    --> tests/integration_tests.rs:163:23
[INFO] [stdout]     |
[INFO] [stdout] 163 |         assert!(!caps.supported_methods.is_empty(), "Plugin {} should have supported methods", plugin_name);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `can_generate_tokens`, `can_validate_tokens`, `can_refresh_tokens`, `supports_mfa`, `supports_rbac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `AuthContext` in this scope
[INFO] [stdout]   --> tests/mod.rs:12:74
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn create_test_auth_context(method: &str, credentials: Value) -> AuthContext {
[INFO] [stdout]    |                                                                          ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `AuthContext` in this scope
[INFO] [stdout]   --> tests/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         AuthContext {
[INFO] [stdout]    |         ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `AuthResult` in this scope
[INFO] [stdout]   --> tests/mod.rs:47:48
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn assert_auth_result_success(result: &AuthResult) {
[INFO] [stdout]    |                                                ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `AuthResult` in this scope
[INFO] [stdout]   --> tests/mod.rs:53:48
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn assert_auth_result_failure(result: &AuthResult) {
[INFO] [stdout]    |                                                ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/integration_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> tests/integration_tests.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fortress_auth_plugins::*`
[INFO] [stdout]  --> tests/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use fortress_auth_plugins::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::collections::HashMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]    --> tests/integration_tests.rs:247:48
[INFO] [stdout]     |
[INFO] [stdout] 247 |         format!("header.{}.signature", base64::encode(user_id))
[INFO] [stdout]     |                                                ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `supported_methods` on type `fortress_auth_plugins::PluginCapabilities`
[INFO] [stdout]    --> tests/integration_tests.rs:163:23
[INFO] [stdout]     |
[INFO] [stdout] 163 |         assert!(!caps.supported_methods.is_empty(), "Plugin {} should have supported methods", plugin_name);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `can_generate_tokens`, `can_validate_tokens`, `can_refresh_tokens`, `supports_mfa`, `supports_rbac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0609`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fortress-auth-plugins` (test "integration_tests") due to 1 previous error; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0422, E0425, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0422`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fortress-auth-plugins` (test "mod") due to 5 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3", kill_on_drop: false }`
[INFO] [stdout] 859f807747ca59cbddf6a50d79227ea7fedca79bd36d9954de2baad4c81410e3
