[INFO] cloning repository https://github.com/NPozzaUNamur/cBach [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NPozzaUNamur/cBach" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNPozzaUNamur%2FcBach", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNPozzaUNamur%2FcBach'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9853b6d219082ee3542b93fd50d1104d687f6d3b [INFO] testing NPozzaUNamur/cBach against 1.99.0-beta.8 for beta-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNPozzaUNamur%2FcBach" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] [stderr] Updating files: 14% (683/4731) Updating files: 14% (708/4731) Updating files: 15% (710/4731) Updating files: 15% (713/4731) Updating files: 15% (715/4731) Updating files: 15% (724/4731) Updating files: 15% (729/4731) Updating files: 15% (733/4731) Updating files: 15% (737/4731) Updating files: 15% (746/4731) Updating files: 15% (751/4731) Updating files: 16% (757/4731) Updating files: 16% (760/4731) Updating files: 16% (766/4731) Updating files: 17% (805/4731) Updating files: 17% (810/4731) Updating files: 18% (852/4731) Updating files: 18% (894/4731) Updating files: 19% (899/4731) Updating files: 19% (933/4731) Updating files: 20% (947/4731) Updating files: 20% (960/4731) Updating files: 20% (981/4731) Updating files: 20% (983/4731) Updating files: 20% (990/4731) Updating files: 21% (994/4731) Updating files: 22% (1041/4731) Updating files: 23% (1089/4731) Updating files: 24% (1136/4731) Updating files: 25% (1183/4731) Updating files: 26% (1231/4731) Updating files: 27% (1278/4731) Updating files: 28% (1325/4731) Updating files: 29% (1372/4731) Updating files: 30% (1420/4731) Updating files: 31% (1467/4731) Updating files: 32% (1514/4731) Updating files: 33% (1562/4731) Updating files: 33% (1585/4731) Updating files: 34% (1609/4731) Updating files: 35% (1656/4731) Updating files: 36% (1704/4731) Updating files: 37% (1751/4731) Updating files: 38% (1798/4731) Updating files: 39% (1846/4731) Updating files: 40% (1893/4731) Updating files: 41% (1940/4731) Updating files: 42% (1988/4731) Updating files: 43% (2035/4731) Updating files: 44% (2082/4731) Updating files: 45% (2129/4731) Updating files: 46% (2177/4731) Updating files: 47% (2224/4731) Updating files: 48% (2271/4731) Updating files: 49% (2319/4731) Updating files: 50% (2366/4731) Updating files: 51% (2413/4731) Updating files: 52% (2461/4731) Updating files: 53% (2508/4731) Updating files: 54% (2555/4731) Updating files: 55% (2603/4731) Updating files: 56% (2650/4731) Updating files: 57% (2697/4731) Updating files: 58% (2744/4731) Updating files: 59% (2792/4731) Updating files: 60% (2839/4731) Updating files: 61% (2886/4731) Updating files: 62% (2934/4731) Updating files: 62% (2968/4731) Updating files: 63% (2981/4731) Updating files: 64% (3028/4731) Updating files: 65% (3076/4731) Updating files: 66% (3123/4731) Updating files: 67% (3170/4731) Updating files: 68% (3218/4731) Updating files: 69% (3265/4731) Updating files: 70% (3312/4731) Updating files: 71% (3360/4731) Updating files: 72% (3407/4731) Updating files: 73% (3454/4731) Updating files: 74% (3501/4731) Updating files: 75% (3549/4731) Updating files: 76% (3596/4731) Updating files: 77% (3643/4731) Updating files: 78% (3691/4731) Updating files: 79% (3738/4731) Updating files: 80% (3785/4731) Updating files: 81% (3833/4731) Updating files: 82% (3880/4731) Updating files: 83% (3927/4731) Updating files: 84% (3975/4731) Updating files: 85% (4022/4731) Updating files: 86% (4069/4731) Updating files: 87% (4116/4731) Updating files: 88% (4164/4731) Updating files: 88% (4187/4731) Updating files: 89% (4211/4731) Updating files: 90% (4258/4731) Updating files: 91% (4306/4731) Updating files: 92% (4353/4731) Updating files: 93% (4400/4731) Updating files: 94% (4448/4731) Updating files: 95% (4495/4731) Updating files: 96% (4542/4731) Updating files: 97% (4590/4731) Updating files: 98% (4637/4731) Updating files: 99% (4684/4731) Updating files: 100% (4731/4731) Updating files: 100% (4731/4731), done. [INFO] started tweaking git repo https://github.com/NPozzaUNamur/cBach [INFO] finished tweaking git repo https://github.com/NPozzaUNamur/cBach [INFO] tweaked toml for git repo https://github.com/NPozzaUNamur/cBach written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/NPozzaUNamur/cBach 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 git repo https://github.com/NPozzaUNamur/cBach 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 fd-lock v4.0.4 [INFO] [stderr] Downloaded rustyline v15.0.0 [INFO] [stderr] Downloaded nibble_vec v0.1.0 [INFO] [stderr] Downloaded fragile v2.0.1 [INFO] [stderr] Downloaded mockall_derive v0.13.1 [INFO] [stderr] Downloaded mockall v0.13.1 [INFO] [stderr] Downloaded radix_trie v0.2.1 [INFO] [stderr] Downloaded syn v2.0.116 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e [INFO] running `Command { std: "docker" "start" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e", 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" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e" "/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" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e", 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" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling memchr v2.8.2 [INFO] [stderr] Compiling mockall_derive v0.13.1 [INFO] [stderr] Compiling bytes v1.12.0 [INFO] [stderr] Compiling zerocopy v0.8.52 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling fragile v2.0.1 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling endian-type v0.1.2 [INFO] [stderr] Compiling log v0.4.33 [INFO] [stderr] Compiling unicode-segmentation v1.13.3 [INFO] [stderr] Compiling nibble_vec v0.1.0 [INFO] [stderr] Compiling home v0.5.12 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling radix_trie v0.2.1 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling cbach-core v26.8.0 (/opt/rustwide/workdir/cbach-core) [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling fd-lock v4.0.4 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling rustyline v15.0.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling cbach-rs-macros v26.8.0 (/opt/rustwide/workdir/cbach-rs-macros) [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling cbach-language v26.8.0 (/opt/rustwide/workdir/cbach-language) [INFO] [stderr] Compiling mockall v0.13.1 [INFO] [stderr] Compiling cbach-rs v26.8.0 (/opt/rustwide/workdir/cbach-rs) [INFO] [stderr] Compiling cbach-engine v26.8.0 (/opt/rustwide/workdir/cbach-engine) [INFO] [stderr] Compiling cbach-client-kit v26.8.0 (/opt/rustwide/workdir/cbach-client-kit) [INFO] [stderr] Compiling cbach-bridge v26.8.0 (/opt/rustwide/workdir/cbach-bridge) [INFO] [stderr] Compiling cbach-aggregator v26.8.0 (/opt/rustwide/workdir/cbach-aggregator) [INFO] [stderr] Compiling cbach-service v26.8.0 (/opt/rustwide/workdir/cbach-service) [INFO] [stderr] Compiling cbach-cli v26.8.0 (/opt/rustwide/workdir/cbach-cli) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.07s [INFO] running `Command { std: "docker" "inspect" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e", 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" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e" "/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 fastrand v2.4.1 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling cbach-rs-macros v26.8.0 (/opt/rustwide/workdir/cbach-rs-macros) [INFO] [stderr] Compiling cbach-language v26.8.0 (/opt/rustwide/workdir/cbach-language) [INFO] [stderr] Compiling cbach-engine v26.8.0 (/opt/rustwide/workdir/cbach-engine) [INFO] [stderr] Compiling cbach-service v26.8.0 (/opt/rustwide/workdir/cbach-service) [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling cbach-rs v26.8.0 (/opt/rustwide/workdir/cbach-rs) [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling cbach-client-kit v26.8.0 (/opt/rustwide/workdir/cbach-client-kit) [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling cbach-bridge v26.8.0 (/opt/rustwide/workdir/cbach-bridge) [INFO] [stderr] Compiling cbach-aggregator v26.8.0 (/opt/rustwide/workdir/cbach-aggregator) [INFO] [stderr] Compiling cbach-cli v26.8.0 (/opt/rustwide/workdir/cbach-cli) [INFO] [stderr] Compiling proptest v1.11.0 [INFO] [stderr] Compiling cbach-core v26.8.0 (/opt/rustwide/workdir/cbach-core) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 24.06s [INFO] running `Command { std: "docker" "inspect" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e", 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" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e" "/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.17s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_aggregator-9d0a49a0b4b5877a) [INFO] [stdout] [INFO] [stdout] running 95 tests [INFO] [stdout] test accumulator::tests::accumulator_should_keep_the_last_value_verbatim ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_report_no_value_when_every_sample_was_unusable ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_not_accept_a_non_numeric_value_for_a_numeric_operation ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_keep_the_smallest_and_largest_numerically ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_not_accept_an_infinite_or_undefined_value ... ok [INFO] [stdout] test accumulator::tests::render_should_not_print_spurious_precision ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_report_no_value_for_an_empty_window ... ok [INFO] [stdout] test aggregator::tests::supervise_should_report_a_cancelled_task ... ok [INFO] [stdout] test aggregator::tests::drain_stale_should_stop_when_nothing_is_stale ... ok [INFO] [stdout] test accumulator::tests::render_should_not_pad_a_short_fraction_with_zeros ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_count_every_value_including_a_non_numeric_one ... ok [INFO] [stdout] test aggregator::tests::config_should_expose_what_the_aggregator_runs ... ok [INFO] [stdout] test aggregator::tests::drain_stale_should_remove_every_stale_registration ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_round_a_mean_to_a_readable_value ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_average_the_accepted_values ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_sum_the_accepted_values ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_non_integer_capacity ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_zero_capacity ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_malformed_address ... ok [INFO] [stdout] test config::tests::parse_should_use_the_defaults_when_nothing_is_set ... ok [INFO] [stdout] test accumulator::tests::render_should_not_print_a_fraction_for_a_whole_number ... ok [INFO] [stdout] test aggregator::tests::supervise_should_return_ok_when_every_task_ends_cleanly ... ok [INFO] [stdout] test control::tests::accept_once_should_abandon_a_directive_without_an_identifier ... ok [INFO] [stdout] test job::tests::first_tick_should_be_one_whole_window_away ... ok [INFO] [stdout] test config::tests::from_env_should_read_the_process_environment ... ok [INFO] [stdout] test config::tests::parse_should_read_each_variable ... ok [INFO] [stdout] test control::tests::accept_once_should_park_a_get_on_the_directive_template ... ok [INFO] [stdout] test accumulator::tests::accumulator_should_stay_constant_size_across_many_values ... ok [INFO] [stdout] test control::tests::accept_once_should_register_and_acknowledge_a_valid_directive ... ok [INFO] [stdout] test control::tests::accept_once_should_abandon_a_semantic_link_failure ... ok [INFO] [stdout] test aggregator::tests::drain_stale_should_stop_at_its_limit ... ok [INFO] [stdout] test job::tests::sample_buffer_should_be_bounded ... ok [INFO] [stdout] test control::tests::accept_once_should_reject_a_malformed_directive_with_a_reason ... ok [INFO] [stdout] test config::tests::parse_should_accept_a_hostname ... ok [INFO] [stdout] test control::tests::accept_once_should_reject_a_directive_the_starter_refuses ... ok [INFO] [stdout] test job::tests::run_should_release_the_registration_on_teardown ... ok [INFO] [stdout] test control::tests::accept_once_should_not_acknowledge_a_rejected_directive ... ok [INFO] [stdout] test model::directive::tests::expand_wildcards_should_leave_a_pattern_without_underscores_alone ... ok [INFO] [stdout] test model::directive::tests::expand_wildcards_should_number_each_wildcard_distinctly ... ok [INFO] [stdout] test control::tests::run_should_keep_accepting_after_a_rejection ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_allow_the_same_blackboard_under_another_signature ... ok [INFO] [stdout] test model::directive::tests::expand_wildcards_should_not_touch_an_underscore_inside_a_name ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_a_missing_field ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_not_treat_two_underscores_as_the_same_variable ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_a_pattern_written_with_spaces ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_build_a_directive ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_a_non_integer_window ... ok [INFO] [stdout] test model::directive::tests::added_should_be_the_one_field_registration_term ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_a_repeated_aggregated_variable ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_a_target_that_would_feed_its_own_origin ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_a_target_variable_the_origin_cannot_bind ... ok [INFO] [stdout] test job::tests::run_should_stop_when_the_cancellation_watch_fires ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_a_zero_window ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_an_unparsable_origin_pattern ... ok [INFO] [stdout] test model::directive::tests::rejected_should_carry_the_reason_as_an_atom ... ok [INFO] [stdout] test model::directive::tests::group_vars_should_preserve_the_pattern_order ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_an_aggregated_variable_absent_from_the_origin ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_an_unknown_operation ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_rewrite_a_bare_underscore_into_a_variable ... ok [INFO] [stdout] test model::directive::tests::from_bindings_should_reject_an_unparsable_target_pattern ... ok [INFO] [stdout] test model::directive::tests::group_vars_should_exclude_the_aggregated_variable ... ok [INFO] [stdout] test model::directive::tests::rejected_should_strip_a_quote_from_the_reason ... ok [INFO] [stdout] test model::error::tests::display_should_render_each_variant ... ok [INFO] [stdout] test model::operation::tests::keyword_should_round_trip_through_parse ... ok [INFO] [stdout] test model::operation::tests::parse_should_accept_every_supported_operation ... ok [INFO] [stdout] test model::directive::tests::template_should_be_the_eight_variable_new_term ... ok [INFO] [stdout] test model::operation::tests::is_numeric_should_exclude_count_and_last ... ok [INFO] [stdout] test registry::tests::claim_should_refuse_beyond_the_capacity ... ok [INFO] [stdout] test registry::tests::claim_should_admit_a_fresh_identifier ... ok [INFO] [stdout] test registry::tests::claim_should_refuse_a_duplicate_identifier ... ok [INFO] [stdout] test model::operation::tests::parse_should_reject_an_unknown_operation ... ok [INFO] [stdout] test registry::tests::capacity_should_report_the_bound ... ok [INFO] [stdout] test job::tests::run_should_park_a_get_on_the_origin_and_a_nask_on_the_registration ... ok [INFO] [stdout] test window::tests::accept_should_open_one_accumulator_per_group_key ... ok [INFO] [stdout] test registry::tests::release_should_free_the_identifier ... ok [INFO] [stdout] test registry::tests::release_should_ignore_an_unknown_identifier ... ok [INFO] [stdout] test window::tests::accept_should_not_accept_a_sample_missing_the_aggregated_variable ... ok [INFO] [stdout] test window::tests::accept_should_not_accept_a_sample_missing_a_grouping_variable ... ok [INFO] [stdout] test window::tests::accept_should_count_a_sample_whose_value_is_unusable ... ok [INFO] [stdout] test window::tests::window_should_group_by_every_non_aggregated_variable ... ok [INFO] [stdout] test window::tests::flush_should_reset_the_groups ... ok [INFO] [stdout] test window::tests::accept_should_reuse_the_accumulator_of_a_known_group ... ok [INFO] [stdout] test window::tests::flush_should_emit_nothing_for_an_empty_window ... ok [INFO] [stdout] test window::tests::flush_should_apply_the_target_pattern ... ok [INFO] [stdout] test window::tests::flush_should_clear_the_dropped_tally ... ok [INFO] [stdout] test window::tests::flush_should_emit_nothing_when_every_sample_was_unusable ... ok [INFO] [stdout] test window::tests::flush_should_emit_only_closed_terms ... ok [INFO] [stdout] test window::tests::flush_should_emit_one_term_per_group ... ok [INFO] [stdout] test window::tests::flush_should_not_grow_the_group_map_across_windows ... ok [INFO] [stdout] test job::tests::run_should_not_emit_before_the_first_window_elapses ... ok [INFO] [stdout] test job::tests::run_should_emit_one_term_per_group_key_at_each_tick ... ok [INFO] [stdout] test job::tests::run_should_not_emit_for_a_window_without_samples ... ok [INFO] [stdout] test job::tests::run_should_emit_the_usable_samples_of_a_window_that_had_bad_ones ... ok [INFO] [stdout] test job::tests::run_should_stop_when_the_origin_consumer_gives_up ... ok [INFO] [stdout] test job::tests::run_should_reset_the_accumulator_between_windows ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 95 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.43s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cbach_aggregator-edf11f431bbd27f9) [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/one_service.rs (/opt/rustwide/target/debug/deps/one_service-4d7e8b75682d8d0c) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test aggregator_should_reject_a_malformed_directive_with_a_reason ... ok [INFO] [stdout] test aggregator_should_confirm_a_directive_with_added ... ok [INFO] [stdout] test aggregator_should_reject_a_directive_beyond_its_capacity ... ok [INFO] [stdout] test aggregator_should_reject_a_duplicate_identifier ... ok [INFO] [stdout] test a_cancelled_job_should_consume_at_most_one_further_sample ... ok [INFO] [stdout] test aggregator_should_emit_the_mean_of_a_window_per_group_key ... ok [INFO] [stdout] test aggregator_should_run_two_jobs_independently ... ok [INFO] [stdout] test aggregator_should_consume_the_samples_it_aggregated ... ok [INFO] [stdout] test aggregator_should_not_acknowledge_a_rejected_directive ... ok [INFO] [stdout] test aggregator_should_emit_nothing_for_a_silent_window ... ok [INFO] [stderr] Running tests/summarise_and_flush.rs (/opt/rustwide/target/debug/deps/summarise_and_flush-c54cd759ffe14f81) [INFO] [stdout] test aggregator_should_stop_once_its_registration_is_taken ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test a_flushed_gateway_should_retain_neither_raw_samples_nor_summaries ... ok [INFO] [stdout] test a_summarised_link_should_deliver_means_upward_without_the_raw_stream ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.82s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_bridge-4224fc45dd082269) [INFO] [stdout] [INFO] [stdout] running 45 tests [INFO] [stdout] test config::tests::parse_should_accept_the_minimal_configuration ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_malformed_lifetime ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_missing_forward_list ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_configuration_with_no_required_variable ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_malformed_address ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_malformed_signature ... ok [INFO] [stdout] test bridge::tests::supervise_should_report_a_cancelled_forwarder ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_carry_a_term_to_the_parent ... ok [INFO] [stdout] test config::tests::from_env_should_read_the_process_environment ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_abandon_when_the_outbox_read_fails_semantically ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_not_retry_a_coordination_failure_from_the_parent ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_attach_the_configured_lifetime_to_the_push ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_push_before_consuming ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_abandon_when_a_field_is_left_unbound ... ok [INFO] [stdout] test config::tests::parse_should_accept_several_signatures ... ok [INFO] [stdout] test bridge::tests::config_should_expose_what_the_bridge_runs ... ok [INFO] [stdout] test config::tests::parse_should_default_the_local_address ... ok [INFO] [stdout] test bridge::tests::supervise_should_return_ok_when_every_task_ends_cleanly ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_report_a_duplicate_risk_when_the_local_consume_fails ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_retry_a_transient_failure_on_the_local_link ... ok [INFO] [stdout] test model::signature::tests::from_str_should_reject_a_missing_separator ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_use_the_default_blackboards_when_unconfigured ... ok [INFO] [stdout] test forwarder::tests::signature_should_report_what_the_forwarder_carries ... ok [INFO] [stdout] test forwarder::tests::forward_once_should_retry_until_the_parent_comes_back ... ok [INFO] [stdout] test model::signature::tests::from_str_should_parse_the_functor_and_arity ... ok [INFO] [stdout] test forwarder::tests::forwarded_should_report_whether_a_term_completed ... ok [INFO] [stdout] test model::error::tests::display_should_render_each_variant ... ok [INFO] [stdout] test model::signature::tests::display_should_render_the_configuration_form ... ok [INFO] [stdout] test forwarder::tests::run_should_keep_forwarding_until_dropped ... ok [INFO] [stdout] test model::signature::tests::from_str_should_reject_an_empty_functor ... ok [INFO] [stdout] test config::tests::parse_should_accept_a_hostname ... ok [INFO] [stdout] test model::signature::tests::from_str_should_trim_surrounding_whitespace ... ok [INFO] [stdout] test model::signature::tests::ground_should_return_the_atom_at_arity_zero ... ok [INFO] [stdout] test model::signature::tests::template_should_be_a_bare_atom_at_arity_zero ... ok [INFO] [stdout] test model::signature::tests::template_should_build_one_variable_per_field ... ok [INFO] [stdout] test model::signature::tests::from_str_should_reject_an_invalid_arity ... ok [INFO] [stdout] test forwarder::tests::run_should_pause_and_continue_after_an_abandoned_iteration ... ok [INFO] [stdout] test model::signature::tests::ground_should_rebuild_the_matched_term ... ok [INFO] [stdout] test model::signature::tests::new_should_expose_the_functor_and_arity ... ok [INFO] [stdout] test config::tests::parse_should_default_both_blackboards_to_none ... ok [INFO] [stdout] test config::tests::parse_should_read_the_optional_variables ... ok [INFO] [stdout] test config::tests::parse_should_reject_a_missing_parent ... ok [INFO] [stdout] test config::tests::parse_should_reject_an_empty_forward_list ... ok [INFO] [stdout] test model::signature::tests::ground_should_not_build_a_term_from_incomplete_bindings ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cbach_bridge-58e0d4d4ef4cb58c) [INFO] [stdout] test bridge::tests::run_should_start_one_forwarder_per_signature ... ok [INFO] [stderr] Running tests/two_services.rs (/opt/rustwide/target/debug/deps/two_services-2a7942a4f766397e) [INFO] [stdout] [INFO] [stdout] test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [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] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test bridge_should_keep_running_when_a_term_is_forwarded_twice ... ok [INFO] [stdout] test bridge_should_flush_the_outbox_after_forwarding ... ok [INFO] [stdout] test bridge_should_carry_a_term_from_the_outbox_to_the_parent ... ok [INFO] [stdout] test bridge_should_forward_several_signatures_independently ... ok [INFO] [stdout] test bridge_should_deliver_once_an_unreachable_parent_comes_back ... ok [INFO] [stdout] test bridge_should_not_forward_an_unlisted_signature ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cbach_cli-53866f262133cff7) [INFO] [stdout] [INFO] [stdout] running 30 tests [INFO] [stdout] test address::tests::prompt_addr_should_return_the_parsed_address ... ok [INFO] [stdout] test address::tests::prompt_addr_should_return_none_on_end_of_input ... ok [INFO] [stdout] test command::tests::classify_should_parse_connect_with_two_arguments ... ok [INFO] [stdout] test output::tests::format_should_render_an_empty_resolving ... ok [INFO] [stdout] test command::tests::classify_should_treat_an_unknown_meta_command_as_unknown ... ok [INFO] [stdout] test command::tests::classify_should_treat_a_blank_line_as_empty ... ok [INFO] [stdout] test address::tests::parse_addr_should_reject_a_bad_port ... ok [INFO] [stdout] test address::tests::parse_addr_should_reject_an_empty_host ... ok [INFO] [stdout] test repl::tests::run_should_flag_an_unknown_command ... ok [INFO] [stdout] test command::tests::classify_should_reject_connect_without_two_arguments ... ok [INFO] [stdout] test address::tests::parse_addr_should_resolve_a_hostname ... ok [INFO] [stdout] test command::tests::classify_should_recognise_quit_aliases ... ok [INFO] [stdout] test repl::tests::run_should_print_the_resolving_of_an_agent ... ok [INFO] [stdout] test repl::tests::run_should_reject_a_bad_connect_address ... ok [INFO] [stdout] test repl::tests::run_should_continue_after_an_interrupt ... ok [INFO] [stdout] test repl::tests::run_should_reject_a_var_splice_with_a_hint ... ok [INFO] [stdout] test command::tests::classify_should_treat_cbach_source_as_an_agent ... ok [INFO] [stdout] test command::tests::classify_should_recognise_help_and_addr ... ok [INFO] [stdout] test repl::tests::run_should_report_a_run_error_and_continue ... ok [INFO] [stdout] test repl::tests::looks_like_var_splice_should_detect_only_the_splice_form ... ok [INFO] [stdout] test address::tests::parse_addr_should_accept_a_valid_ip_and_port ... ok [INFO] [stdout] test address::tests::prompt_addr_should_reprompt_on_invalid_input ... ok [INFO] [stdout] test output::tests::format_should_render_sorted_bindings ... ok [INFO] [stdout] test repl::tests::run_should_show_help_and_address ... ok [INFO] [stdout] test repl::tests::run_should_stop_on_end_of_input ... ok [INFO] [stdout] test repl::tests::run_should_accept_agents_with_whitespace ... ok [INFO] [stdout] test repl::tests::run_should_report_a_failed_reconnect ... ok [INFO] [stdout] test repl::tests::run_should_report_a_parse_error_and_continue ... ok [INFO] [stdout] test repl::tests::run_should_retarget_on_connect ... ok [INFO] [stdout] test runner::tests::blocking_runner_should_build_without_a_service ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-308a98d18e969518) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test cli_should_drive_the_service ... ignored, needs the cbach-service and cbach-cli binaries built [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] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_client_kit-896ead8d01b71b57) [INFO] [stdout] [INFO] [stdout] running 32 tests [INFO] [stdout] test address::tests::resolve_should_reject_a_value_without_a_port ... ok [INFO] [stdout] test backoff::tests::next_delay_should_stay_within_the_first_ceiling ... ok [INFO] [stdout] test backoff::tests::default_should_use_the_documented_schedule ... ok [INFO] [stdout] test backoff::tests::next_delay_should_saturate_at_the_maximum ... ok [INFO] [stdout] test backoff::tests::reset_should_return_the_schedule_to_the_base ... ok [INFO] [stdout] test backoff::tests::next_delay_should_double_the_ceiling_on_each_failure ... ok [INFO] [stdout] test link::tests::run_should_error_when_the_service_is_absent ... ok [INFO] [stdout] test address::tests::resolve_should_accept_a_numeric_address ... ok [INFO] [stdout] test address::tests::resolve_should_accept_a_hostname ... ok [INFO] [stdout] test backoff::tests::next_delay_should_not_overflow_after_many_failures ... ok [INFO] [stdout] test link::tests::addr_should_report_the_configured_address ... ok [INFO] [stdout] test retry::tests::attempt_should_return_the_first_success ... ok [INFO] [stdout] test backoff::tests::next_delay_should_be_zero_for_a_zero_schedule ... ok [INFO] [stdout] test link::tests::is_transient_should_select_only_link_failures ... ok [INFO] [stdout] test backoff::tests::jitter_should_stay_within_the_spread ... ok [INFO] [stdout] test address::tests::resolve_should_accept_an_ipv6_address ... ok [INFO] [stdout] test address::tests::resolve_should_reject_an_unknown_host ... ok [INFO] [stdout] test retry::tests::attempt_should_not_retry_a_coordination_failure ... ok [INFO] [stdout] test retry::tests::attempt_should_not_retry_a_protocol_failure ... ok [INFO] [stdout] test retry::tests::attempt_should_retry_a_transient_failure ... ok [INFO] [stdout] test testing::tests::reserve_port_should_return_an_address_nothing_is_serving ... ok [INFO] [stdout] test retry::tests::attempt_until_should_not_retry_a_coordination_failure ... ok [INFO] [stdout] test retry::tests::attempt_until_should_succeed_before_the_deadline ... ok [INFO] [stdout] test link::tests::run_should_reconnect_after_a_dropped_connection ... ok [INFO] [stdout] test link::tests::run_should_drop_the_connection_after_a_transport_failure ... ok [INFO] [stdout] test link::tests::run_should_reuse_one_connection_across_calls ... ok [INFO] [stdout] test retry::tests::attempt_until_should_give_up_at_the_deadline ... ok [INFO] [stdout] test testing::tests::start_service_on_should_serve_a_previously_reserved_port ... ok [INFO] [stdout] test testing::tests::start_service_should_return_a_reachable_address ... ok [INFO] [stdout] test retry::tests::attempt_should_reset_the_backoff_after_a_success ... ok [INFO] [stdout] test link::tests::run_should_reach_a_live_service ... ok [INFO] [stdout] test link::tests::run_should_keep_the_connection_after_a_coordination_failure ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_core-a074d86c5cd21100) [INFO] [stdout] [INFO] [stdout] running 103 tests [INFO] [stdout] test model::action::tests::action_should_default_to_no_timing ... ok [INFO] [stdout] test model::action::tests::action_should_not_be_equal_across_locations ... ok [INFO] [stdout] test model::action::tests::action_should_default_to_no_location ... ok [INFO] [stdout] test model::action::tests::action_should_not_be_equal_across_multiplicities ... ok [INFO] [stdout] test model::action::tests::action_should_not_be_equal_across_timings ... ok [INFO] [stdout] test model::action::tests::action_should_default_to_multiplicity_one ... ok [INFO] [stdout] test model::action::tests::action_should_not_be_equal_across_primitives ... ok [INFO] [stdout] test model::action::tests::action_should_carry_the_location_it_was_built_with ... ok [INFO] [stdout] test model::action::tests::action_should_render_a_multiplicity_after_the_term ... ok [INFO] [stdout] test model::agent::tests::display_should_not_parenthesise_a_leaf_operand ... ok [INFO] [stdout] test model::action::tests::action_should_render_each_primitive_as_string ... ok [INFO] [stdout] test model::agent::tests::display_should_render_a_primitive_as_its_action ... ok [INFO] [stdout] test model::action::tests::action_should_render_its_location_when_set ... ok [INFO] [stdout] test model::agent::tests::display_should_render_a_wait_agent ... ok [INFO] [stdout] test model::agent_resolving::tests::display_should_render_an_empty_resolving ... ok [INFO] [stdout] test model::agent_resolving::tests::display_should_render_sorted_bindings ... ok [INFO] [stdout] test model::agent_resolving::tests::get_should_return_a_bound_value ... ok [INFO] [stdout] test model::action::tests::dense_should_attach_a_multiplicity ... ok [INFO] [stdout] test model::action::tests::primitive_should_render_its_keyword ... ok [INFO] [stdout] test model::action::tests::timed_should_attach_a_time_budget ... ok [INFO] [stdout] test model::agent::tests::display_should_render_each_operator ... ok [INFO] [stdout] test model::action::tests::primitive_should_bind_only_for_ask_and_get ... ok [INFO] [stdout] test model::matching::tests::apply_should_substitute_bound_variables ... ok [INFO] [stdout] test model::matching::tests::matches_should_enforce_repeated_variable_consistency ... ok [INFO] [stdout] test model::matching::tests::matches_should_bind_a_variable ... ok [INFO] [stdout] test model::matching::tests::matches_should_fail_on_different_atoms ... ok [INFO] [stdout] test model::action::tests::action_should_render_timing_before_the_term_and_location_after ... ok [INFO] [stdout] test model::action::tests::action_should_render_timing_multiplicity_and_location_together ... ok [INFO] [stdout] test model::agent::tests::display_should_parenthesise_a_composed_operand ... ok [INFO] [stdout] test model::matching::tests::matches_should_bind_several_variables ... ok [INFO] [stdout] test model::matching::tests::matches_should_fail_on_different_arities ... ok [INFO] [stdout] test model::reply::tests::display_should_render_each_variant ... ok [INFO] [stdout] test model::matching::tests::matches_should_succeed_on_equal_atoms ... ok [INFO] [stdout] test model::term::tests::atom_should_be_a_closed_arity_zero_term ... ok [INFO] [stdout] test model::matching::tests::matches_should_fail_on_different_functors ... ok [INFO] [stdout] test model::reply::tests::is_resolved_should_hold_only_for_a_resolving ... ok [INFO] [stdout] test model::term::tests::is_closed_should_detect_a_variable_field ... ok [INFO] [stdout] test model::term::tests::display_should_render_each_kind ... ok [INFO] [stdout] test model::term::tests::from_conversions_should_build_arity_zero_atoms ... ok [INFO] [stdout] test model::term::tests::leaf_should_report_closedness ... ok [INFO] [stdout] test model::term::tests::new_should_expose_functor_and_arity ... ok [INFO] [stdout] test protocol::frame::tests::frame_should_encode_an_empty_payload ... ok [INFO] [stdout] test model::time::tests::duration_should_render_in_milliseconds ... ok [INFO] [stdout] test model::time::tests::time_specs_should_compare_by_value ... ok [INFO] [stdout] test model::time::tests::var_should_render_with_a_question_mark ... ok [INFO] [stdout] test protocol::frame::tests::take_frame_should_return_none_when_the_payload_is_incomplete ... ok [INFO] [stdout] test protocol::frame::tests::take_frame_should_return_the_payload_of_a_complete_frame ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_a_truncated_duration ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_a_truncated_multiplicity ... ok [INFO] [stdout] test protocol::frame::tests::take_frame_should_not_reject_a_length_at_the_maximum ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_an_invalid_timing_presence_byte ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_an_invalid_location_presence_byte ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_an_unknown_tag ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_a_duration_timing ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_a_location_and_a_timing_together ... ok [INFO] [stdout] test protocol::frame::tests::take_frame_should_reassemble_a_frame_split_across_reads ... ok [INFO] [stdout] test protocol::frame::tests::take_frame_should_return_none_when_the_header_is_incomplete ... ok [INFO] [stdout] test protocol::frame::tests::take_frame_should_reject_a_length_over_the_maximum ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_a_variable_timing ... ok [INFO] [stdout] test protocol::frame::tests::take_frame_should_take_an_empty_payload ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_multiplicity_timing_and_location_together ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_a_multiplicity ... ok [INFO] [stdout] test protocol::frame::tests::frame_should_prefix_the_payload_with_its_length ... ok [INFO] [stdout] test protocol::frame::tests::take_frame_should_leave_the_next_frame_in_the_buffer ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_an_invalid_time_tag ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_a_variable_location ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_malformed_buffers ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_reject_an_unknown_node_tag ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_a_missing_location_byte ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_without_a_location ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_resolving_should_reject_a_truncated_count ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_a_structured_term ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_decode_should_reject_a_missing_timing_byte ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_resolving_should_reject_a_truncated_pair ... ok [INFO] [stdout] test protocol::from_bytes::tests::action_should_round_trip_an_atom_location ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_resolving_should_round_trip_bindings ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_reject_a_subtree_length_past_the_buffer ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_reject_a_truncated_subtree_length ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_resolving_should_round_trip_an_empty_resolving ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_round_trip_a_primitive ... ok [INFO] [stdout] test protocol::from_bytes::tests::reply_should_round_trip_a_resolving ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_reject_an_empty_buffer ... ok [INFO] [stdout] test model::coordination_error::tests::display_should_render_each_variant_with_its_message ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_round_trip_each_operator ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_round_trip_every_primitive_variant ... ok [INFO] [stdout] test protocol::from_bytes::tests::reply_should_round_trip_a_malformed_request ... ok [INFO] [stdout] test protocol::from_bytes::tests::term_should_reject_an_unknown_leaf_tag ... ok [INFO] [stdout] test protocol::from_bytes::tests::term_should_reject_invalid_utf8 ... ok [INFO] [stdout] test protocol::from_bytes::tests::term_should_round_trip_a_structured_term ... ok [INFO] [stdout] test protocol::from_bytes::tests::term_should_round_trip_an_atom ... ok [INFO] [stdout] test protocol::from_bytes::tests::reply_should_round_trip_an_empty_resolving ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_round_trip_a_structured_tree ... ok [INFO] [stdout] test protocol::from_bytes::tests::coordination_error_should_reject_an_empty_buffer ... ok [INFO] [stdout] test protocol::from_bytes::tests::term_should_reject_a_truncated_arity ... ok [INFO] [stdout] test protocol::from_bytes::tests::coordination_error_should_reject_an_unknown_tag ... ok [INFO] [stdout] test protocol::from_bytes::tests::term_should_reject_an_empty_buffer ... ok [INFO] [stdout] test protocol::from_bytes::tests::reply_should_round_trip_a_failure ... ok [INFO] [stdout] test protocol::from_bytes::tests::coordination_error_should_round_trip_every_variant ... ok [INFO] [stdout] test protocol::from_bytes::tests::reply_should_reject_an_unknown_tag ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_round_trip_a_timed_primitive_in_a_tree ... ok [INFO] [stdout] test protocol::from_bytes::tests::agent_should_round_trip_a_wait ... ok [INFO] [stdout] test protocol::from_bytes::tests::reply_should_reject_an_empty_buffer ... ok [INFO] [stdout] test protocol::from_bytes::tests::coordination_error_should_round_trip_an_empty_message ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 103 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Running tests/protocol.rs (/opt/rustwide/target/debug/deps/protocol-937c2e90c5896d3d) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test coordination_error_should_round_trip_through_the_protocol ... ok [INFO] [stdout] test reply_should_round_trip_through_the_protocol ... ok [INFO] [stdout] test take_frame_should_never_panic_on_arbitrary_bytes ... ok [INFO] [stdout] test term_should_round_trip_through_the_protocol ... ok [INFO] [stdout] test reply_decode_should_never_panic_on_arbitrary_bytes ... ok [INFO] [stdout] test agent_resolving_decode_should_never_panic_on_arbitrary_bytes ... ok [INFO] [stdout] test agent_decode_should_never_panic_on_arbitrary_bytes ... ok [INFO] [stdout] test agent_resolving_should_round_trip_through_the_protocol ... ok [INFO] [stdout] test a_framed_payload_should_survive_the_round_trip ... ok [INFO] [stdout] test agent_should_round_trip_through_the_protocol ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_engine-ad73f8c0e607bc1c) [INFO] [stdout] [INFO] [stdout] running 144 tests [INFO] [stdout] test blackboard::bucket::tests::deliver_ready_gets_should_skip_a_dead_receiver ... ok [INFO] [stdout] test blackboard::bucket::tests::take_ready_get_should_return_none_when_none_match ... ok [INFO] [stdout] test blackboard::bucket::tests::take_ready_get_should_hand_over_a_matching_get ... ok [INFO] [stdout] test blackboard::bucket::tests::push_should_dispatch_each_suspendable_action ... ok [INFO] [stdout] test blackboard::bucket::tests::wake_nasks_should_keep_those_still_matching ... ok [INFO] [stdout] test blackboard::bucket::tests::take_ready_get_should_not_hand_over_a_get_needing_more_than_available ... ok [INFO] [stdout] test blackboard::bucket::tests::remove_should_return_the_responder_of_a_parked_operation ... ok [INFO] [stdout] test blackboard::bucket::tests::wake_asks_should_wake_a_matching_template ... ok [INFO] [stdout] test blackboard::bucket::tests::wake_nasks_should_wake_when_no_longer_matching ... ok [INFO] [stdout] test blackboard::bucket::tests::wake_asks_should_not_panic_when_empty ... ok [INFO] [stdout] test blackboard::bucket::tests::remove_should_return_none_after_a_wake_took_the_entry ... ok [INFO] [stdout] test blackboard::signature::tests::different_arities_yield_different_signatures ... ok [INFO] [stdout] test blackboard::store::tests::ask_should_match_a_multi_field_template ... ok [INFO] [stdout] test blackboard::store::tests::ask_should_be_non_destructive ... ok [INFO] [stdout] test blackboard::store::tests::an_atom_should_be_stored_and_matched ... ok [INFO] [stdout] test blackboard::signature::tests::structured_terms_with_the_same_functor_and_arity_share_a_signature ... ok [INFO] [stdout] test blackboard::store::tests::ask_should_require_at_least_m ... ok [INFO] [stdout] test blackboard::store::tests::ask_should_find_a_stored_term_by_exact_match ... ok [INFO] [stdout] test blackboard::store::tests::ask_should_match_a_variable_template ... ok [INFO] [stdout] test blackboard::bucket::tests::wake_asks_should_not_wake_a_non_matching_template ... ok [INFO] [stdout] test blackboard::store::tests::expire_due_should_report_no_removal_when_nothing_is_due ... ok [INFO] [stdout] test blackboard::bucket::tests::push_should_carry_the_multiplicity ... ok [INFO] [stdout] test blackboard::store::tests::expire_due_should_remove_all_occurrences_due_by_now ... ok [INFO] [stdout] test blackboard::bucket::tests::wake_nasks_should_pass_the_multiplicity_to_the_predicate ... ok [INFO] [stdout] test blackboard::bucket::tests::wake_asks_should_not_wake_below_the_multiplicity ... ok [INFO] [stdout] test blackboard::signature::tests::different_functors_yield_different_signatures ... ok [INFO] [stdout] test blackboard::store::tests::get_should_consume_m_atomically ... ok [INFO] [stdout] test blackboard::store::tests::print_store_should_not_panic ... ok [INFO] [stdout] test blackboard::store::tests::get_should_cancel_the_earliest_pending_expiry ... ok [INFO] [stdout] test blackboard::store::tests::dense_get_should_pop_m_pending_expiries ... ok [INFO] [stdout] test blackboard::store::tests::has_match_should_report_presence_and_absence ... ok [INFO] [stdout] test blackboard::store::tests::expire_due_should_remove_a_term_whose_deadline_has_passed ... ok [INFO] [stdout] test blackboard::store::tests::get_should_remove_one_matching_occurrence ... ok [INFO] [stdout] test blackboard::store::tests::get_should_return_none_below_m_without_partial_consume ... ok [INFO] [stdout] test blackboard::store::tests::ask_should_return_none_when_no_term_matches ... ok [INFO] [stdout] test blackboard::store::tests::get_should_return_none_when_no_term_matches ... ok [INFO] [stdout] test blackboard::store::tests::clear_store_should_empty_it ... ok [INFO] [stdout] test blackboard::store::tests::has_match_should_be_false_below_m ... ok [INFO] [stdout] test blackboard::store::tests::dense_ask_should_pick_a_key_with_enough_and_bind_it ... ok [INFO] [stdout] test blackboard::store::tests::expire_due_should_keep_an_immortal_occurrence ... ok [INFO] [stdout] test blackboard::tests::default_should_build_an_empty_blackboard ... ok [INFO] [stdout] test blackboard::tests::dense_ask_should_suspend_until_the_count_reaches_m ... ok [INFO] [stdout] test blackboard::store::tests::tell_should_add_m_occurrences ... ok [INFO] [stdout] test blackboard::tests::a_timed_dense_get_should_time_out_consuming_nothing ... ok [INFO] [stdout] test blackboard::tests::a_get_should_cancel_expiry_so_an_immortal_survives ... ok [INFO] [stdout] test blackboard::tests::a_tell_should_serve_several_dense_gets_as_the_count_is_drawn_down ... ok [INFO] [stdout] test blackboard::tests::ask_with_a_template_should_be_woken_by_a_matching_tell ... ok [INFO] [stdout] test blackboard::tests::a_timed_get_woken_before_its_timeout_should_not_lose_the_token ... ok [INFO] [stdout] test blackboard::tests::ask_should_suspend_when_absent_then_be_woken_by_tell ... ok [INFO] [stdout] test blackboard::store::tests::tell_should_count_occurrences ... ok [INFO] [stdout] test blackboard::store::tests::tell_should_saturate_at_max_occurrences ... ok [INFO] [stdout] test blackboard::store::tests::tell_timed_should_be_visible_before_expiry ... ok [INFO] [stdout] test blackboard::tests::dense_get_should_reject_when_fewer_than_m_present ... ok [INFO] [stdout] test blackboard::tests::dense_get_should_consume_m_atomically_when_woken ... ok [INFO] [stdout] test blackboard::tests::dense_nask_should_hold_until_the_count_drops_below_m ... ok [INFO] [stdout] test blackboard::tests::dense_nask_should_succeed_at_once_below_m ... ok [INFO] [stdout] test blackboard::tests::distinct_functors_do_not_interfere ... ok [INFO] [stdout] test blackboard::tests::expiry_should_wake_a_suspended_nask ... ok [INFO] [stdout] test blackboard::tests::a_dense_ask_should_bind_its_template_from_the_matched_key ... ok [INFO] [stdout] test blackboard::tests::get_should_suspend_when_absent_then_be_woken_and_consume ... ok [INFO] [stdout] test blackboard::tests::nask_should_respond_when_absent ... ok [INFO] [stdout] test blackboard::tests::tell_should_not_lose_token_to_a_get_whose_receiver_was_dropped ... ok [INFO] [stdout] test blackboard::tests::tell_should_reject_an_open_term ... ok [INFO] [stdout] test blackboard::tests::nask_should_suspend_when_present_then_be_woken_by_get ... ok [INFO] [stdout] test blackboard::tests::tell_should_respond_and_store ... ok [INFO] [stdout] test blackboard::tests::tell_should_wake_exactly_one_suspended_get ... ok [INFO] [stdout] test blackboard::tests::timed_ask_should_time_out_when_unmatched ... ok [INFO] [stdout] test blackboard::tests::tell_timed_should_expire_after_its_lifetime ... ok [INFO] [stdout] test engine::tests::engine_should_allow_direct_ask ... ok [INFO] [stdout] test engine::tests::engine_should_allow_direct_get ... ok [INFO] [stdout] test engine::tests::engine_should_allow_direct_nask ... ok [INFO] [stdout] test engine::tests::engine_should_allow_direct_tell ... ok [INFO] [stdout] test engine::tests::engine_should_be_accessible_by_multiple_threads ... ok [INFO] [stdout] test engine::tests::engine_should_propagate_blackboard_error ... ok [INFO] [stdout] test engine::tests::engine_should_resolve_a_duration_into_a_deadline ... ok [INFO] [stdout] test engine::tests::engine_should_map_dropped_channel_to_action_failed ... ok [INFO] [stdout] test engine::tests::engine_should_answer_resolved_action ... ok [INFO] [stdout] test engine::tests::engine_should_reject_an_unbound_time_variable ... ok [INFO] [stdout] test evaluator::tests::check_ground_time_should_reject_an_open_time ... ok [INFO] [stdout] test evaluator::tests::check_ground_location_should_accept_a_ground_or_absent_location ... ok [INFO] [stdout] test evaluator::tests::check_ground_location_should_reject_an_open_location ... ok [INFO] [stdout] test engine::tests::engine_wait_should_complete_when_the_clock_advances ... ok [INFO] [stdout] test engine::tests::engine_should_share_state_with_his_clone ... ok [INFO] [stdout] test evaluator::tests::choice_should_commit_the_sibling_when_a_branch_times_out ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_apply_substitution_to_a_nask ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_commit_choice_to_a_succeeding_branch ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_fail_a_primitive_whose_location_is_unbound ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_conflict_on_parallel_clashing_bindings ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_fail_a_timed_out_primitive ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_fail_on_an_unbound_wait_time ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_commit_choice_when_the_losing_branch_suspends ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_resolve_a_primitive_to_empty_bindings ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_resolve_a_parallel_to_empty_bindings ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_thread_bindings_into_a_join ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_tell_a_term_closed_by_substitution ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_commit_to_the_surviving_branch_when_the_right_errors ... ok [INFO] [stdout] test evaluator::tests::merge_distinct_should_reject_a_conflicting_binding ... ok [INFO] [stdout] test evaluator::tests::resolve_time_should_bind_a_time_variable_from_the_substitution ... ok [INFO] [stdout] test evaluator::tests::merge_distinct_should_union_disjoint_bindings ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_resolve_a_real_sequence_to_empty_bindings ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_choose_the_surviving_branch_when_one_errors ... ok [INFO] [stdout] test evaluator::tests::par_should_run_the_sibling_to_completion_when_a_branch_times_out ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_resolve_a_location_variable_bound_by_an_earlier_primitive ... ok [INFO] [stdout] test evaluator::tests::resolve_time_should_leave_an_unbound_time_variable_open ... ok [INFO] [stdout] test evaluator::tests::substitute_should_leave_an_unbound_location_variable_open ... ok [INFO] [stdout] test evaluator::tests::wait_should_succeed_binding_nothing ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_bind_a_variable_across_a_sequence ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_short_circuit_sequence_on_left_failure ... ok [INFO] [stdout] test evaluator::tests::substitute_should_preserve_the_multiplicity ... ok [INFO] [stdout] test evaluator::tests::substitute_should_bind_a_location_variable_from_the_substitution ... ok [INFO] [stdout] test evaluator::tests::substitute_should_leave_an_absent_location_absent ... ok [INFO] [stdout] test evaluator::tests::seq_should_abort_when_the_first_primitive_times_out ... ok [INFO] [stdout] test space::tests::registry_should_list_a_blackboard_after_its_creation ... ok [INFO] [stdout] test space::tests::registry_should_list_the_default_and_itself_at_startup ... ok [INFO] [stdout] test space::tests::space_should_reject_an_unbound_location ... ok [INFO] [stdout] test space::tests::space_should_create_a_blackboard_even_for_a_nask ... ok [INFO] [stdout] test space::tests::space_should_not_create_a_second_blackboard_for_a_known_id ... ok [INFO] [stdout] test space::tests::space_should_route_a_located_action_to_its_named_blackboard ... ok [INFO] [stdout] test space::tests::insert_if_absent_should_report_only_the_first_call_as_the_creator ... ok [INFO] [stdout] test space::tests::space_should_isolate_terms_between_blackboards ... ok [INFO] [stdout] test space::tests::space_should_start_with_only_the_default_and_the_registry ... ok [INFO] [stdout] test time::tests::instant_should_add_a_duration ... ok [INFO] [stdout] test space::tests::target_of_should_default_when_no_location_is_set ... ok [INFO] [stdout] test evaluator::tests::wait_should_compose_before_a_primitive ... ok [INFO] [stdout] test space::tests::space_should_route_an_unlocated_action_to_the_default_blackboard ... ok [INFO] [stdout] test time::tests::instant_should_order_by_time ... ok [INFO] [stdout] test time::tests::manual_clock_should_fire_tasks_armed_by_a_fired_task ... ok [INFO] [stdout] test time::tests::manual_clock_should_start_at_zero ... ok [INFO] [stdout] test space::tests::registry_should_be_discoverable_through_an_ordinary_primitive ... ok [INFO] [stdout] test time::tests::sleep_until_should_complete_when_the_clock_reaches_the_deadline ... ok [INFO] [stdout] test space::tests::target_of_should_return_the_named_blackboard ... ok [INFO] [stdout] test time::tests::default_sources_should_construct ... ok [INFO] [stdout] test time::tests::manual_clock_should_fire_a_task_when_its_deadline_passes ... ok [INFO] [stdout] test space::tests::space_should_create_each_blackboard_once_under_concurrent_first_reference ... ok [INFO] [stdout] test space::tests::registry_should_not_list_a_blackboard_twice ... ok [INFO] [stdout] test space::tests::space_should_create_a_blackboard_on_first_reference ... ok [INFO] [stdout] test blackboard::bucket::tests::push_should_panic_on_a_tell - should panic ... ok [INFO] [stdout] test blackboard::bucket::tests::remove_should_target_only_its_own_id ... ok [INFO] [stdout] test blackboard::signature::tests::an_atom_routes_on_its_own_name_at_arity_zero ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_resolve_a_time_variable_bound_by_an_earlier_primitive ... ok [INFO] [stdout] test time::tests::tokio_clock_now_should_advance_over_real_time ... ok [INFO] [stdout] test time::tests::tokio_clock_sleep_until_should_complete ... ok [INFO] [stdout] test evaluator::tests::evaluator_should_fail_on_an_unbound_primitive_time ... ok [INFO] [stdout] test time::tests::tokio_clock_arm_should_fire_its_task_after_the_delay ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 144 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] Running tests/basic.rs (/opt/rustwide/target/debug/deps/basic-69d2b9239fa95265) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test ask_is_non_destructive ... ok [INFO] [stdout] test ask_returns_true_when_media_is_present ... ok [INFO] [stdout] test tell_always_returns_true ... ok [INFO] [stdout] test get_returns_true_and_consumes_one_occurrence ... ok [INFO] [stdout] test nask_returns_true_when_media_is_absent ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/complex.rs (/opt/rustwide/target/debug/deps/complex-197309c3514d70e2) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test tell_wakes_all_suspended_asks_for_same_media ... ok [INFO] [stdout] test two_tells_wake_two_suspended_gets ... ok [INFO] [stdout] test tell_wakes_suspended_ask_and_get_simultaneously ... ok [INFO] [stdout] test tell_wakes_exactly_one_suspended_get_per_occurrence ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s [INFO] [stdout] [INFO] [stderr] Running tests/suspension.rs (/opt/rustwide/target/debug/deps/suspension-3d5271db1281aa25) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test get_wakes_suspended_nask_when_last_occurrence_is_consumed ... ok [INFO] [stdout] test tell_wakes_suspended_ask ... ok [INFO] [stdout] test nask_suspends_when_media_is_present ... ok [INFO] [stdout] test get_suspends_when_media_is_absent ... ok [INFO] [stdout] test ask_suspends_when_media_is_absent ... ok [INFO] [stdout] test tell_wakes_suspended_get_and_consumes_the_occurrence ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_language-e129688acb062b35) [INFO] [stdout] [INFO] [stdout] running 66 tests [INFO] [stdout] test parser::agent::tests::the_parser_should_be_able_to_parse_a_simple_agent_in_brackets ... ok [INFO] [stdout] test parser::media::tests::the_parser_should_be_able_to_parse_a_token ... ok [INFO] [stdout] test parser::agent::tests::the_parser_should_be_able_to_parse_a_simple_agent ... ok [INFO] [stdout] test parser::agent::tests::the_parser_should_be_able_to_parse_parallel_operator ... ok [INFO] [stdout] test parser::agent::tests::the_parser_should_be_able_to_parse_choice_operator ... ok [INFO] [stdout] test parser::media::tests::the_parser_should_refuse_token_with_first_character_as_number ... ok [INFO] [stdout] test parser::agent::tests::the_parser_should_refuse_hallucinate_operator ... ok [INFO] [stdout] test parser::agent::tests::the_parser_should_be_able_to_parse_nested_operators ... ok [INFO] [stdout] test parser::agent::tests::the_parser_should_be_able_to_parse_multiple_operators ... ok [INFO] [stdout] test parser::media::tests::the_parser_should_refuse_token_with_first_character_as_capitals ... ok [INFO] [stdout] test parser::media::tests::the_parser_should_be_able_to_parse_a_token_with_capital_character_and_number ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_be_able_to_parse_a_get_primitive ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_be_able_to_parse_a_nask_primitive ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_multiplicity_on_a_variable_template ... ok [INFO] [stdout] test parser::agent::tests::the_parser_should_refuse_hallucinate_token ... ok [INFO] [stdout] test parser::media::tests::the_parser_should_refuse_token_with_special_character ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_be_able_to_parse_a_tell_primitive ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_duration_timing ... ok [INFO] [stdout] test parser::agent::tests::the_parser_should_be_able_to_parse_sequence_operator ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_primitive_with_a_variable ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_location_on_a_structured_term ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_be_able_to_parse_an_ask_primitive ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_multiplicity ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_not_consume_an_at_without_a_blackboard_id ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_refuse_hallucinate_primitives ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_reject_an_empty_timing ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_location_on_every_primitive ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_reject_a_non_numeric_multiplicity ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_reject_a_zero_multiplicity ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_reject_a_wait_without_a_time ... ok [INFO] [stdout] test parser::term::tests::term_should_allow_a_quoted_var_atom ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_default_to_multiplicity_one ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_variable_location ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_an_atom_location ... ok [INFO] [stdout] test parser::term::tests::term_should_parse_a_lowercase_word_without_parens_as_an_atom ... ok [INFO] [stdout] test parser::term::tests::term_should_parse_a_bare_atom_as_arity_zero ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_primitive_without_a_location ... ok [INFO] [stdout] test parser::term::tests::term_should_parse_a_quoted_atom ... ok [INFO] [stdout] test parser::term::tests::term_should_parse_a_structured_term ... ok [INFO] [stdout] test parser::term::tests::term_should_parse_a_variable_field ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_structured_primitive ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_primitive_without_a_timing ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_timing_and_a_location_together ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_variable_timing ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_timing_multiplicity_and_location_together ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_wait_with_a_duration ... ok [INFO] [stdout] test parser::primitive::tests::the_parser_should_parse_a_wait_with_a_variable ... ok [INFO] [stdout] test parser::tests::parse_term_should_parse_a_bare_atom ... ok [INFO] [stdout] test parser::tests::parse_term_should_reject_trailing_input ... ok [INFO] [stdout] test parser::tests::parse_term_should_reject_a_nested_term_rather_than_truncating_it ... ok [INFO] [stdout] test parser::time::tests::timevalue_should_parse_a_variable ... ok [INFO] [stdout] test parser::tests::parse_term_should_not_treat_underscore_as_a_wildcard ... ok [INFO] [stdout] test parser::term::tests::term_should_reject_a_nested_term ... ok [INFO] [stdout] test parser::tests::parse_term_should_reject_a_space_inside_a_compound ... ok [INFO] [stdout] test parser::tests::parse_should_handle_a_structured_agent ... ok [INFO] [stdout] test parser::tests::parse_should_reject_empty_parentheses ... ok [INFO] [stdout] test parser::tests::parse_should_produce_an_agent_from_text ... ok [INFO] [stdout] test parser::tests::parse_should_reject_an_uppercase_functor ... ok [INFO] [stdout] test parser::tests::parse_should_return_an_error_for_invalid_input ... ok [INFO] [stdout] test parser::term::tests::term_should_reject_the_reserved_var_keyword ... ok [INFO] [stdout] test parser::term::tests::term_should_reject_a_bare_variable ... ok [INFO] [stdout] test parser::time::tests::timevalue_should_parse_each_unit_into_milliseconds ... ok [INFO] [stdout] test parser::time::tests::timevalue_should_prefer_ms_over_m ... ok [INFO] [stdout] test parser::time::tests::timevalue_should_reject_a_bare_integer ... ok [INFO] [stdout] test parser::time::tests::timevalue_should_reject_an_unknown_unit ... ok [INFO] [stdout] test parser::tests::parse_term_should_parse_a_compound_with_variables ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 66 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_rs-9219ce6144288883) [INFO] [stdout] [INFO] [stdout] running 31 tests [INFO] [stdout] test builder::tests::atom_should_build_an_arity_zero_term ... ok [INFO] [stdout] test builder::tests::located_primitives_should_carry_their_blackboard ... ok [INFO] [stdout] test builder::tests::dense_primitives_should_carry_their_multiplicity ... ok [INFO] [stdout] test builder::tests::compound_should_build_a_tuple_over_fields ... ok [INFO] [stdout] test builder::tests::free_operators_should_nest_agents ... ok [INFO] [stdout] test builder::tests::agent_ext_choice_should_build_a_choice_node ... ok [INFO] [stdout] test builder::tests::timed_primitives_should_carry_their_time_budget ... ok [INFO] [stdout] test builder::tests::wait_should_build_a_wait_agent ... ok [INFO] [stdout] test client::tests::with_addr_should_set_the_configured_address ... ok [INFO] [stdout] test builder::tests::primitives_should_accept_a_bare_string_as_an_atom ... ok [INFO] [stdout] test client::tests::default_config_should_target_the_default_port ... ok [INFO] [stdout] test builder::tests::primitives_should_accept_a_compound_term ... ok [INFO] [stdout] test builder::tests::unlocated_primitives_should_target_the_default_blackboard ... ok [INFO] [stdout] test client::tests::connect_should_error_when_no_service_is_listening ... ok [INFO] [stdout] test connection::tests::run_should_propagate_a_transport_error ... ok [INFO] [stdout] test builder::tests::agent_ext_should_compose_fluently ... ok [INFO] [stdout] test error::tests::from_should_wrap_a_coordination_error ... ok [INFO] [stdout] test error::tests::display_should_render_each_variant ... ok [INFO] [stdout] test connection::tests::run_should_return_the_resolving_from_the_transport ... ok [INFO] [stdout] test transport::tests::request_should_error_on_an_undecodable_reply ... ok [INFO] [stdout] test transport::tests::request_should_error_on_an_oversized_reply_frame ... ok [INFO] [stdout] test lang::tests::parse_should_error_on_invalid_syntax ... ok [INFO] [stdout] test lang::tests::parse_should_produce_an_agent ... ok [INFO] [stdout] test transport::tests::request_should_error_when_server_closes_without_replying ... ok [INFO] [stdout] test transport::tests::request_should_return_the_resolving_of_a_successful_reply ... ok [INFO] [stdout] test transport::tests::request_should_surface_a_malformed_report_as_a_protocol_error ... ok [INFO] [stdout] test lang::tests::parse_term_should_error_on_a_nested_term ... ok [INFO] [stdout] test transport::tests::request_should_surface_a_service_failure_as_a_coordination_error ... ok [INFO] [stdout] test blocking::tests::new_should_build_a_blocking_client ... ok [INFO] [stdout] test lang::tests::parse_term_should_produce_a_term ... ok [INFO] [stdout] test transport::tests::request_should_reassemble_a_reply_split_across_reads ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running tests/macro.rs (/opt/rustwide/target/debug/deps/macro-383d156d1bfb85e6) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test bach_should_splice_a_rust_value_with_var ... ok [INFO] [stdout] test bach_should_splice_a_top_level_value_as_an_atom ... ok [INFO] [stdout] test bach_should_build_a_compound_term ... ok [INFO] [stdout] test bach_should_build_a_variable_field ... ok [INFO] [stdout] test bach_should_respect_operator_precedence ... ok [INFO] [stderr] Running tests/roundtrip.rs (/opt/rustwide/target/debug/deps/roundtrip-47e174d15094bd39) [INFO] [stdout] test bach_should_build_an_atom_primitive ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test client_should_run_a_parallel_agent_via_the_macro ... ok [INFO] [stdout] test client_should_bind_a_variable_across_a_sequence ... ok [INFO] [stdout] test macro_should_honour_operator_precedence ... ok [INFO] [stdout] test client_should_run_a_primitive_agent ... ok [INFO] [stdout] test run_str_should_parse_and_run_a_join ... ok [INFO] [stdout] test blocking_client_should_run_an_agent ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_rs_macros-7e38d6ddca90a2d3) [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 unittests src/lib.rs (/opt/rustwide/target/debug/deps/cbach_service-859bf1696278a5ad) [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test communication::connection::tests::next_request_should_reject_an_oversized_frame ... ok [INFO] [stdout] test communication::connection::tests::handle_should_resolve_a_composed_agent ... ok [INFO] [stdout] test communication::connection::tests::write_reply_should_send_a_framed_reply ... ok [INFO] [stdout] test communication::connection::tests::run_should_serve_two_requests_on_one_connection ... ok [INFO] [stdout] test communication::connection::tests::handle_should_report_a_coordination_failure_on_the_error_channel ... ok [INFO] [stdout] test communication::connection::tests::handle_should_resolve_a_primitive_agent ... ok [INFO] [stdout] test communication::connection::tests::read_more_should_return_zero_when_stream_is_closed ... ok [INFO] [stdout] test communication::connection::tests::handle_should_report_undecodable_bytes_as_malformed ... ok [INFO] [stdout] test communication::connection::tests::next_request_should_return_the_payload_of_a_complete_frame ... ok [INFO] [stdout] test communication::connection::tests::read_more_should_fill_buffer_with_stream_data ... ok [INFO] [stdout] test communication::connection::tests::run_should_not_close_the_connection_when_an_agent_fails ... ok [INFO] [stdout] test communication::connection::tests::run_should_close_gracefully_when_stream_is_closed ... ok [INFO] [stdout] test communication::connection::tests::next_request_should_return_none_until_a_whole_frame_arrives ... ok [INFO] [stdout] test communication::connection::tests::run_should_not_close_the_connection_when_a_request_is_malformed ... ok [INFO] [stdout] test communication::connection::tests::run_should_fail_on_an_oversized_frame ... ok [INFO] [stdout] test communication::connection::tests::run_should_serve_two_requests_arriving_in_one_read ... ok [INFO] [stdout] test communication::socket_listener::tests::listen_should_return_error_when_address_is_already_in_use ... ok [INFO] [stdout] test model::error::tests::display_should_delegate_to_the_wrapped_coordination_error ... ok [INFO] [stdout] test model::error::tests::display_should_render_string_variants ... ok [INFO] [stdout] test config::tests::parse_bind_should_accept_a_valid_address ... ok [INFO] [stdout] test config::tests::parse_bind_should_reject_a_malformed_address ... ok [INFO] [stdout] test service::tests::run_should_return_service_error_when_listener_fails ... ok [INFO] [stdout] test communication::socket_listener::tests::new_should_use_provided_addr_when_some ... ok [INFO] [stdout] test config::tests::parse_bind_should_return_none_when_unset ... ok [INFO] [stdout] test model::error::tests::source_should_expose_the_wrapped_coordination_error ... ok [INFO] [stdout] test communication::socket_listener::tests::new_should_accept_port_zero_without_panicking ... ok [INFO] [stdout] test communication::socket_listener::tests::new_should_use_default_addr_when_none ... ok [INFO] [stdout] test model::error::tests::from_should_wrap_a_coordination_error ... ok [INFO] [stdout] test service::tests::new_should_build_a_service_from_an_engine ... ok [INFO] [stdout] test service::tests::run_should_delegate_to_the_listener ... ok [INFO] [stdout] test communication::socket_listener::tests::listen_should_bind_an_ephemeral_port_when_port_is_zero ... ok [INFO] [stdout] test communication::socket_listener::tests::listen_should_accept_incoming_connection_and_spawn_handler ... ok [INFO] [stdout] test communication::socket_listener::tests::listen_should_log_and_survive_a_failing_connection ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cbach_service-b7f37e96375e5bbc) [INFO] [stderr] Running tests/basic.rs (/opt/rustwide/target/debug/deps/basic-a9c754506d0839be) [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] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test service_should_store_and_return_media_on_tell_agent ... ok [INFO] [stdout] test service_should_resolve_a_parallel_agent_with_no_variables_to_empty_bindings ... ok [INFO] [stdout] test service_should_match_a_structured_term_with_a_variable ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running tests/complex.rs (/opt/rustwide/target/debug/deps/complex-296d0d86ff883942) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test service_should_coordinate_tuple_space_operations_across_multiple_clients ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stderr] Doc-tests cbach_aggregator [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test cbach-aggregator/src/model/directive.rs - model::directive (line 39) ... ok [INFO] [stdout] test cbach-aggregator/src/registry.rs - registry (line 19) ... ok [INFO] [stdout] test cbach-aggregator/src/model/directive.rs - model::directive::Directive (line 80) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.79s; merged doctests compilation took 0.76s [INFO] [stderr] Doc-tests cbach_bridge [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test cbach-bridge/src/lib.rs - (line 27) - compile ... ok [INFO] [stdout] test cbach-bridge/src/model/signature.rs - model::signature (line 10) ... ok [INFO] [stdout] test cbach-bridge/src/config.rs - config (line 22) ... ok [INFO] [stdout] test cbach-bridge/src/model/signature.rs - model::signature::Signature (line 37) ... ok [INFO] [stdout] test cbach-bridge/src/config.rs - config::RawConfig (line 62) ... ok [INFO] [stdout] test cbach-bridge/src/config.rs - config::BridgeConfig (line 102) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.79s; merged doctests compilation took 0.77s [INFO] [stderr] Doc-tests cbach_client_kit [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test cbach-client-kit/src/link.rs - link (line 21) - compile ... ok [INFO] [stdout] test cbach-client-kit/src/lib.rs - (line 18) - compile ... ok [INFO] [stdout] test cbach-client-kit/src/testing.rs - testing (line 17) - compile ... ok [INFO] [stdout] test cbach-client-kit/src/retry.rs - retry (line 14) - compile ... ok [INFO] [stdout] test cbach-client-kit/src/address.rs - address (line 18) ... ok [INFO] [stdout] test cbach-client-kit/src/backoff.rs - backoff (line 13) ... ok [INFO] [stdout] test cbach-client-kit/src/link.rs - link::is_transient (line 69) ... ok [INFO] [stdout] test cbach-client-kit/src/backoff.rs - backoff::Backoff (line 36) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.73s; merged doctests compilation took 0.70s [INFO] [stderr] Doc-tests cbach_core [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests cbach_engine [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test cbach-engine/src/time.rs - time::ManualTimeSource (line 119) ... ok [INFO] [stdout] test cbach-engine/src/space.rs - space (line 37) ... ok [INFO] [stdout] test cbach-engine/src/evaluator.rs - evaluator::Evaluator (line 75) ... ok [INFO] [stdout] test cbach-engine/src/evaluator.rs - evaluator (line 27) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.80s; merged doctests compilation took 0.78s [INFO] [stderr] Doc-tests cbach_language [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test cbach-language/src/parser/mod.rs - parser::parse_term (line 46) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.60s; merged doctests compilation took 0.58s [INFO] [stderr] Doc-tests cbach_rs [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test cbach-rs/src/client.rs - client::Client (line 36) - compile ... ok [INFO] [stdout] test cbach-rs/src/lib.rs - (line 14) - compile ... ok [INFO] [stdout] test cbach-rs/src/builder.rs - builder (line 12) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.60s; merged doctests compilation took 0.59s [INFO] [stderr] Doc-tests cbach_rs_macros [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cbach-rs-macros/src/lib.rs - (line 9) ... ignored [INFO] [stdout] test cbach-rs-macros/src/lib.rs - bach (line 247) ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests cbach_service [INFO] [stdout] all doctests ran in 0.40s; merged doctests compilation took 0.39s [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test cbach-service/src/config.rs - config (line 8) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.53s; merged doctests compilation took 0.50s [INFO] running `Command { std: "docker" "inspect" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e", kill_on_drop: false }` [INFO] [stdout] 5b8b13725956d842fd22e08e9afe1dec96863dd92adccdcf3049799e16aa5c6e