[INFO] fetching crate qcryptool 0.2.0...
[INFO] testing qcryptool-0.2.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate qcryptool 0.2.0 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate qcryptool 0.2.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate qcryptool 0.2.0
[INFO] tweaked toml for crates.io crate qcryptool 0.2.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate qcryptool 0.2.0 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 qcryptool 0.2.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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded qcrypto v0.3.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430
[INFO] running `Command { std: "docker" "start" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430", 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" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430" "/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" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430", 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" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling ndarray v0.17.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling nalgebra v0.34.2
[INFO] [stderr]    Compiling qcrypto v0.3.2
[INFO] [stderr]    Compiling qcryptool v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.93s
[INFO] running `Command { std: "docker" "inspect" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430", 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" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling qcryptool v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.71s
[INFO] running `Command { std: "docker" "inspect" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430", 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" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/qcryptool-776bf6e57675046f)
[INFO] [stdout] 
[INFO] [stdout] running 137 tests
[INFO] [stdout] test channel::tests::as_str_all_variants ... ok
[INFO] [stdout] test channel::tests::build_unknown_type_does_not_panic ... ok
[INFO] [stdout] test channel::tests::build_all_channel_types ... ok
[INFO] [stdout] test channel::tests::single_mix_amplitude_phase_damping ... ok
[INFO] [stdout] test channel::tests::sample_single_entry_returns_correct_info ... ok
[INFO] [stdout] test channel::tests::load_invalid_json ... ok
[INFO] [stdout] test channel::tests::load_valid_mix ... ok
[INFO] [stdout] test channel::tests::sample_multi_entry_selects_by_weight_second ... ok
[INFO] [stdout] test channel::tests::sample_info_matches_spec ... ok
[INFO] [stdout] test channel::tests::load_empty_array ... ok
[INFO] [stdout] test channel::tests::load_missing_file ... ok
[INFO] [stdout] test channel::tests::sample_multi_entry_selects_by_weight ... ok
[INFO] [stdout] test channel::tests::single_mix_structure ... ok
[INFO] [stdout] test output::tests::aggregate_to_json_qds ... ok
[INFO] [stdout] test output::tests::aggregate_to_json_qkd ... ok
[INFO] [stdout] test channel::tests::test_sample_with_ranges ... ok
[INFO] [stdout] test config::tests::test_secondary_mix_fallback ... ok
[INFO] [stdout] test config::tests::test_experiment_config_default ... ok
[INFO] [stdout] test output::tests::auth_csv_skips_qkd_entries_in_mixed_slice ... ok
[INFO] [stdout] test config::tests::test_experiment_config_ranges ... ok
[INFO] [stdout] test output::tests::fmt_auth_run_multi_shot_has_header ... ok
[INFO] [stdout] test output::tests::aggregate_to_json_auth ... ok
[INFO] [stdout] test output::tests::auth_csv_basic_structure ... ok
[INFO] [stdout] test output::tests::fmt_auth_run_single_shot ... ok
[INFO] [stdout] test config::tests::test_experiment_config_with_array ... ok
[INFO] [stdout] test config::tests::test_secondary_mix_explicit ... ok
[INFO] [stdout] test output::tests::fmt_qds_run_multi_shot_has_header ... ok
[INFO] [stdout] test config::tests::test_resolve_mix_from_parts_identity ... ok
[INFO] [stdout] test output::tests::auth_csv_with_detail ... ok
[INFO] [stdout] test output::tests::fmt_qds_run_not_accepted ... ok
[INFO] [stdout] test output::tests::auth_csv_includes_channel_q_when_nonzero ... ok
[INFO] [stdout] test output::tests::fmt_qds_run_single_shot ... ok
[INFO] [stdout] test output::tests::fmt_qds_run_with_q ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_dual_channel ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_chsh_not_violated ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_single_shot_has_protocol ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_multi_shot_has_header ... ok
[INFO] [stdout] test output::tests::auth_csv_omits_channel_q_when_always_zero ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_qber_unavailable ... ok
[INFO] [stdout] test output::tests::print_terminal_multi_shot_with_detail_no_panic ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_with_keys ... ok
[INFO] [stdout] test output::tests::print_terminal_multi_qds_no_panic ... ok
[INFO] [stdout] test output::tests::print_terminal_single_auth_no_panic ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_dual_channel_bob_q ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_dual_channel_shows_alice_and_bob ... ok
[INFO] [stdout] test output::tests::print_terminal_single_qds_no_panic ... ok
[INFO] [stdout] test output::tests::fmt_qkd_run_with_chsh ... ok
[INFO] [stdout] test output::tests::print_terminal_single_qkd_no_panic ... ok
[INFO] [stdout] test output::tests::print_terminal_multi_shot_no_panic ... ok
[INFO] [stdout] test output::tests::qds_csv_includes_charlie_q_when_nonzero ... ok
[INFO] [stdout] test output::tests::qds_csv_basic_structure ... ok
[INFO] [stdout] test output::tests::qkd_csv_dual_channel_headers ... ok
[INFO] [stdout] test output::tests::qds_csv_omits_q_columns_when_always_zero ... ok
[INFO] [stdout] test output::tests::qkd_csv_dual_channel_includes_bob_q_when_nonzero ... ok
[INFO] [stdout] test output::tests::qds_csv_skips_non_qds_entries ... ok
[INFO] [stdout] test output::tests::qkd_csv_chsh_none_row_when_has_chsh ... ok
[INFO] [stdout] test output::tests::qkd_csv_dual_channel_omits_q_columns_when_zero ... ok
[INFO] [stdout] test output::tests::qkd_csv_includes_channel_q_when_nonzero ... ok
[INFO] [stdout] test output::tests::qkd_csv_omits_channel_q_when_always_zero ... ok
[INFO] [stdout] test output::tests::fmt_auth_run_not_authenticated ... ok
[INFO] [stdout] test output::tests::fmt_auth_run_with_detail ... ok
[INFO] [stdout] test output::tests::aggregate_to_json_qkd_with_chsh ... ok
[INFO] [stdout] test channel::tests::load_amplitude_phase_damping_with_q ... ok
[INFO] [stdout] test output::tests::fmt_auth_run_with_q ... ok
[INFO] [stdout] test output::tests::qkd_csv_qber_na_when_unavailable ... ok
[INFO] [stdout] test output::tests::qkd_csv_single_channel_headers_unchanged ... ok
[INFO] [stdout] test output::tests::qkd_csv_skips_auth_entries_in_mixed_slice ... ok
[INFO] [stdout] test output::tests::qkd_csv_with_chsh_columns ... ok
[INFO] [stdout] test output::tests::run_to_json_auth ... ok
[INFO] [stdout] test output::tests::run_to_json_qds_fields ... ok
[INFO] [stdout] test output::tests::run_to_json_auth_with_detail ... ok
[INFO] [stdout] test output::tests::run_to_json_qkd_dual_channel_fields ... ok
[INFO] [stdout] test output::tests::run_to_json_qkd_dual_qber_unavailable ... ok
[INFO] [stdout] test output::tests::run_to_json_qkd_has_channel_fields ... ok
[INFO] [stdout] test output::tests::run_to_json_qkd_qber_unavailable ... ok
[INFO] [stdout] test output::tests::run_to_json_qkd_with_chsh ... ok
[INFO] [stdout] test output::tests::run_to_json_qkd_with_keys ... ok
[INFO] [stdout] test output::tests::write_file_csv_qkd ... ok
[INFO] [stdout] test output::tests::write_file_csv_auth ... ok
[INFO] [stdout] test output::tests::write_file_csv_qds ... ok
[INFO] [stdout] test output::tests::write_file_error_is_handled_gracefully ... ok
[INFO] [stdout] test output::tests::write_file_txt_auth ... ok
[INFO] [stdout] test output::tests::write_file_json_qds ... ok
[INFO] [stdout] test output::tests::write_file_json ... ok
[INFO] [stdout] test output::tests::write_file_txt_qkd ... ok
[INFO] [stdout] test output::tests::write_file_txt_qds ... ok
[INFO] [stdout] test run::tests::keys_equal_different_value ... ok
[INFO] [stdout] test run::tests::keys_equal_identical ... ok
[INFO] [stdout] test run::tests::keys_equal_both_empty ... ok
[INFO] [stdout] test run::tests::keys_equal_different_length ... ok
[INFO] [stdout] test run::tests::run_e91_detail_true ... ok
[INFO] [stdout] test run::tests::run_gc01_records_channel_info ... ok
[INFO] [stdout] test run::tests::run_sarg04_detail_true ... ok
[INFO] [stdout] test run::tests::run_qia_qzkp_detail_true ... ok
[INFO] [stdout] test run::tests::run_gc01_parallel ... ok
[INFO] [stdout] test run::tests::run_six_state_detail_true ... ok
[INFO] [stdout] test run::tests::runner_records_channel_info ... ok
[INFO] [stdout] test run::tests::run_gc01_noiseless_accepted ... ok
[INFO] [stdout] test run::tests::to_hex_full_byte_all_ones ... ok
[INFO] [stdout] test run::tests::to_hex_empty ... ok
[INFO] [stdout] test run::tests::to_hex_lsb_only ... ok
[INFO] [stdout] test run::tests::to_hex_full_byte_alternating ... ok
[INFO] [stdout] test run::tests::to_hex_single_bit_msb ... ok
[INFO] [stdout] test run::tests::to_hex_partial_byte ... ok
[INFO] [stdout] test stats::tests::compute_mixed_runs ... ok
[INFO] [stdout] test run::tests::to_hex_two_bytes ... ok
[INFO] [stdout] test run::tests::run_bbm92_detail_true ... ok
[INFO] [stdout] test stats::tests::compute_mixed_runs_auth ... ok
[INFO] [stdout] test stats::tests::compute_qds_basic ... ok
[INFO] [stdout] test stats::tests::compute_qkd_no_qber ... ok
[INFO] [stdout] test stats::tests::compute_mixed_runs_qkd ... ok
[INFO] [stdout] test run::tests::run_b92_sequential ... ok
[INFO] [stdout] test stats::tests::fmt_qds_aggregate ... ok
[INFO] [stdout] test stats::tests::fmt_e91_aggregate ... ok
[INFO] [stdout] test run::tests::run_bb84_sequential ... ok
[INFO] [stdout] test stats::tests::mean_multiple ... ok
[INFO] [stdout] test stats::tests::mean_empty ... ok
[INFO] [stdout] test stats::tests::mean_single ... ok
[INFO] [stdout] test stats::tests::std_dev_empty ... ok
[INFO] [stdout] test stats::tests::pct_zero_total ... ok
[INFO] [stdout] test stats::tests::pct_normal ... ok
[INFO] [stdout] test run::tests::run_bb84_detail_true_populates_keys ... ok
[INFO] [stdout] test stats::tests::std_dev_single ... ok
[INFO] [stdout] test stats::tests::std_dev_uniform ... ok
[INFO] [stdout] test stats::tests::std_dev_known ... ok
[INFO] [stdout] test tests::resolve_mix_no_config_uses_cli_args ... ok
[INFO] [stdout] test tests::resolve_mix_with_valid_config_file ... ok
[INFO] [stdout] test run::tests::run_bb84_detail_false_no_keys ... ok
[INFO] [stdout] test run::tests::run_b92_detail_true ... ok
[INFO] [stdout] test run::tests::run_qia_qzkp_sequential ... ok
[INFO] [stdout] test run::tests::execute_shots_with_seed_is_deterministic ... ok
[INFO] [stdout] test run::tests::execute_shots_no_seed_runs_all ... ok
[INFO] [stdout] test run::tests::run_six_state_sequential ... ok
[INFO] [stdout] test run::tests::run_sarg04_sequential ... ok
[INFO] [stdout] test run::tests::run_bbm92_sequential ... ok
[INFO] [stdout] test run::tests::run_e91_sequential ... ok
[INFO] [stdout] test run::tests::run_gc01_sequential ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 137 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.78s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-c00c172e98df0bbc)
[INFO] [stdout] 
[INFO] [stdout] running 51 tests
[INFO] [stdout] Results saved → /tmp/.tmpN3Gbu2/res.csv
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : phase-damping (p=0.05)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 5 (50.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 2 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Results saved → /tmp/.tmpK7jIvv/res.csv
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : depolarizing (p=0.05)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 8 (80.0%)
[INFO] [stdout] Check errors   : 1
[INFO] [stdout] QBER           : 0.2500 (25.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 4 bits
[INFO] [stdout] Keys match     : no (noise or Eve)
[INFO] [stdout] Results saved → /tmp/.tmpF6rdqR/res.csv
[INFO] [stdout] Results saved → /tmp/.tmpSzgqZc/res.csv
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : amplitude-phase-damping (p=0.05, q=0.02)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 2 (20.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 1 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : bit-flip (p=0.05)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 6 (60.0%)
[INFO] [stdout] Check errors   : 1
[INFO] [stdout] QBER           : 0.3333 (33.33%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 3 bits
[INFO] [stdout] Keys match     : no (noise or Eve)
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 6 (60.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 3 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Results saved → /tmp/.tmpk8AThz/res.csv
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : amplitude-damping (p=0.05)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 5 (50.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 2 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test ch_bit_flip ... ok
[INFO] [stdout] test ch_depolarizing ... ok
[INFO] [stdout] Results saved → /tmp/.tmpMkPfc3/res.csv
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : phase-flip (p=0.05)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 7 (70.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 3 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stderr] Error: channel_config must have at least one entry
[INFO] [stdout] test ch_phase_damping ... ok
[INFO] [stdout] test ch_amplitude_phase_damping ... ok
[INFO] [stdout] test detail_mode_shows_keys ... ok
[INFO] [stdout] test cli_no_args_shows_help ... ok
[INFO] [stdout] test bb84_basic ... ok
[INFO] [stdout] test cli_help_message ... ok
[INFO] [stdout] test error_empty_channel_config_array ... ok
[INFO] [stdout] test ch_amplitude_damping ... ok
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 2 (20.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 1 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stderr] Error: Cannot read channel config 'nonexistent.json': No such file or directory (os error 2)
[INFO] [stdout] test error_invalid_channel_config2_file_in_experiment_config ... ok
[INFO] [stderr] Cannot read channel config 'nonexistent_mix.json': No such file or directory (os error 2)
[INFO] [stderr] Error: 'protocol' field is required in experiment config when no subcommand is used
[INFO] [stderr] Error: --q1 is required for channel 'amplitude-phase-damping'
[INFO] [stdout] test error_invalid_channel_config_file ... ok
[INFO] [stdout] Results saved → /tmp/.tmpgFL15a/res.csv
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : bit-phase-flip (p=0.05)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 4 (40.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 2 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test ch_phase_flip ... ok
[INFO] [stdout] test error_missing_q1_for_combined_channel ... ok
[INFO] [stderr] Error: 'p1' (or range) is required for channel 'bit-flip'
[INFO] [stdout] Protocol       : B92
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Conclusive     : 1 (10.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 0 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test error_missing_p1_in_experiment_config ... ok
[INFO] [stdout] test error_unknown_protocol_in_experiment_config ... ok
[INFO] [stderr] Error: unknown protocol 'unknown'
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 3 (30.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 1 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test bbm92_basic ... ok
[INFO] [stdout] test experiment_config_missing_protocol_but_has_subcommand ... ok
[INFO] [stdout] test error_missing_protocol_in_experiment_config ... ok
[INFO] [stderr] Error: cannot read experiment config 'nonexistent.json': No such file or directory (os error 2)
[INFO] [stdout] Results saved → /tmp/.tmpXFgZjR/out.csv
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 100
[INFO] [stdout] Sifted bits    : 45 (45.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 22 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Alice key (hex): 00b46c
[INFO] [stdout] Bob key (hex)  : 00b46c
[INFO] [stderr] Error: invalid experiment config '/tmp/.tmpV11JKT': expected ident at line 1 column 2
[INFO] [stdout] test error_missing_experiment_config ... ok
[INFO] [stdout] test error_invalid_experiment_config_json ... ok
[INFO] [stderr] Error: 'q1' (or range) is required for channel 'amplitude-phase-damping'
[INFO] [stdout] test ch_bit_phase_flip ... ok
[INFO] [stdout] test error_missing_q1_in_experiment_config ... ok
[INFO] [stdout] test experiment_config_overrides_subcommand_protocol ... ok
[INFO] [stdout] test b92_basic ... ok
[INFO] [stderr] Cannot read channel config 'nonexistent.json': No such file or directory (os error 2)
[INFO] [stdout] test error_invalid_channel_config_file_in_experiment_config ... ok
[INFO] [stdout] Results saved → /tmp/.tmpmB0Dj2/res.json
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 3 (30.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 1 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Results saved → /tmp/.tmpjk4Dhr/keys.csv
[INFO] [stdout] 
[INFO] [stdout] ═══════════════ Aggregate (2 shots) ═══════════════
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] QBER           : 0.0000 ± 0.0000
[INFO] [stdout] Key length     : 2.5 ± 0.5 bits
[INFO] [stdout] Keys match     : 2/2 (100.0%)
[INFO] [stdout]   (per-run detail + keys written to output file)
[INFO] [stdout] Protocol       : B92
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Conclusive     : 7 (70.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 3 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Results saved → /tmp/.tmpqLdyBk/res.csv
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 5 (50.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 2 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test experiment_config_keys_out_controls_file_output ... ok
[INFO] [stdout] test bb84_multi_shot ... ok
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] Channel        : bit-flip (p=0.05)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 6 (60.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 3 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test multi_shot_detail_saves_keys_to_csv ... ok
[INFO] [stdout] test output_json ... ok
[INFO] [stdout] test output_csv ... ok
[INFO] [stdout] test experiment_config_with_channel_mix_file ... ok
[INFO] [stdout] test channel_mix_from_file ... ok
[INFO] [stdout] test e91_basic ... ok
[INFO] [stderr] Error: --p1 is required for channel 'bit-flip'
[INFO] [stdout] 
[INFO] [stdout] ═══════════════ Aggregate (2 shots) ═══════════════
[INFO] [stdout] Protocol       : BB84
[INFO] [stdout] QBER           : 0.0192 ± 0.0192
[INFO] [stdout] Key length     : 26.0 ± 1.0 bits
[INFO] [stdout] Keys match     : 2/2 (100.0%)
[INFO] [stdout] test error_missing_p1_for_noise_channel ... ok
[INFO] [stdout] test qia_qzkp_basic ... ok
[INFO] [stdout] test experiment_config_works_without_subcommand ... ok
[INFO] [stdout] Results saved → /tmp/.tmpZa6hAS/auth.csv
[INFO] [stdout] 
[INFO] [stdout] ═══════════════ Aggregate (2 shots) ═══════════════
[INFO] [stdout] Protocol       : QIA-QZKP
[INFO] [stdout] Accuracy       : 1.0000 ± 0.0000
[INFO] [stdout] Auth rate      : 2/2 (100.0%)
[INFO] [stdout]   (per-run detail + keys written to output file)
[INFO] [stdout] test qia_qzkp_detail ... ok
[INFO] [stdout] Protocol       : BBM92
[INFO] [stdout] Channel (Alice): identity (p=0)
[INFO] [stdout] Channel (Bob)  : identity (p=0)
[INFO] [stdout] Raw pairs      : 10
[INFO] [stdout] Sifted bits    : 5 (50.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 2 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test sarg04_basic ... ok
[INFO] [stdout] test qia_qzkp_csv_detail ... ok
[INFO] [stdout] test seed_repro_b92 ... ok
[INFO] [stdout] test seed_repro_six_state ... ok
[INFO] [stdout] test six_state_basic ... ok
[INFO] [stdout] test seed_repro_sarg04 ... ok
[INFO] [stdout] test seed_repro_bb84 ... ok
[INFO] [stdout] Protocol       : BBM92
[INFO] [stdout] Channel (Alice): identity (p=0)
[INFO] [stdout] Channel (Bob)  : identity (p=0)
[INFO] [stdout] Raw pairs      : 10
[INFO] [stdout] Sifted bits    : 4 (40.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 2 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test seed_repro_e91 ... ok
[INFO] [stdout] test seed_repro_bbm92 ... ok
[INFO] [stdout] Protocol       : E91
[INFO] [stdout] Channel (Alice): identity (p=0)
[INFO] [stdout] Channel (Bob)  : identity (p=0)
[INFO] [stdout] Raw pairs      : 10
[INFO] [stdout] Sifted bits    : 2 (20.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] CHSH S-value   : -2.0000  ✗ NOT violated (insecure!)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 1 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] test seed_repro_gc01 ... ok
[INFO] [stdout] test gc01_basic ... ok
[INFO] [stdout] test warning_protocol_mismatch ... ok
[INFO] [stdout] Protocol       : E91
[INFO] [stdout] Channel (Alice): identity (p=0)
[INFO] [stdout] Channel (Bob)  : identity (p=0)
[INFO] [stdout] Raw pairs      : 10
[INFO] [stdout] Sifted bits    : 2 (20.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] CHSH S-value   : -3.0000  ✓ Bell violated (secure)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 1 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Protocol       : Six-State
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 8 (80.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 4 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Protocol       : Six-State
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Sifted bits    : 4 (40.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 2 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Protocol       : SARG04
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Conclusive     : 6 (60.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 3 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Protocol       : SARG04
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Raw qubits     : 10
[INFO] [stdout] Conclusive     : 5 (50.0%)
[INFO] [stdout] Check errors   : 0
[INFO] [stdout] QBER           : 0.0000 (0.00%)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Key length     : 2 bits
[INFO] [stdout] Keys match     : yes
[INFO] [stdout] Protocol       : QIA-QZKP
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Rounds         : 10
[INFO] [stdout] Matches        : 10 / 10
[INFO] [stdout] Accuracy       : 1.0000 (100.00%)
[INFO] [stdout] Authenticated  : YES
[INFO] [stdout] Protocol       : QIA-QZKP
[INFO] [stdout] Channel        : identity (p=0)
[INFO] [stdout] Rounds         : 10
[INFO] [stdout] Matches        : 10 / 10
[INFO] [stdout] Accuracy       : 1.0000 (100.00%)
[INFO] [stdout] Authenticated  : YES
[INFO] [stdout] Protocol       : GC01 (QDS)
[INFO] [stdout] Channel (Bob)  : identity (p=0)
[INFO] [stdout] Channel (Char.): identity (p=0)
[INFO] [stdout] Public key len : 10 qubits
[INFO] [stdout] Message signed : 1
[INFO] [stdout] Bob mismatch   : 0/10 (0.0000)
[INFO] [stdout] Charlie mism.  : 0/10 (0.0000)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Sig. accepted  : YES
[INFO] [stdout] Protocol       : GC01 (QDS)
[INFO] [stdout] Channel (Bob)  : identity (p=0)
[INFO] [stdout] Channel (Char.): identity (p=0)
[INFO] [stdout] Public key len : 10 qubits
[INFO] [stdout] Message signed : 0
[INFO] [stdout] Bob mismatch   : 0/10 (0.0000)
[INFO] [stdout] Charlie mism.  : 0/10 (0.0000)
[INFO] [stdout] Eve intercepts : 0
[INFO] [stdout] Sig. accepted  : YES
[INFO] [stdout] test all_protocols_via_experiment_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.87s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430", kill_on_drop: false }`
[INFO] [stdout] 90e641ebe35234c550af48b9d41ca8f8b822da6fd860f8fb829f3a9a757f7430
