[INFO] crate actiondb 0.7.0 is already in cache [INFO] extracting crate actiondb 0.7.0 into work/ex/beta-1.37-6/sources/1.36.0/reg/actiondb/0.7.0 [INFO] extracting crate actiondb 0.7.0 into work/ex/beta-1.37-6/sources/beta-2019-07-23/reg/actiondb/0.7.0 [INFO] validating manifest of actiondb-0.7.0 on toolchain 1.36.0 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.36.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of actiondb-0.7.0 on toolchain beta-2019-07-23 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-07-23" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing actiondb-0.7.0 [INFO] finished frobbing actiondb-0.7.0 [INFO] frobbed toml for actiondb-0.7.0 written to work/ex/beta-1.37-6/sources/1.36.0/reg/actiondb/0.7.0/Cargo.toml [INFO] started frobbing actiondb-0.7.0 [INFO] finished frobbing actiondb-0.7.0 [INFO] frobbed toml for actiondb-0.7.0 written to work/ex/beta-1.37-6/sources/beta-2019-07-23/reg/actiondb/0.7.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.36.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-07-23" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.36.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-07-23" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] testing actiondb-0.7.0 against 1.36.0 for beta-1.37-6 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.37-6/worker-3/1.36.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.37-6/sources/1.36.0/reg/actiondb/0.7.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+1.36.0" "build" "--frozen"` [INFO] [stdout] 67612bd78c9aea668aab7b393d2b0ac855415ac0ae355b8449a7e873062f9a31 [INFO] running `"docker" "start" "-a" "67612bd78c9aea668aab7b393d2b0ac855415ac0ae355b8449a7e873062f9a31"` [INFO] [stderr] Compiling yaml-rust v0.3.5 [INFO] [stderr] Compiling serde v0.7.15 [INFO] [stderr] Compiling uuid v0.1.18 [INFO] [stderr] Compiling serde_yaml v0.2.5 [INFO] [stderr] Compiling serde_json v0.7.4 [INFO] [stderr] Compiling actiondb v0.7.0 (/opt/crater/workdir) [INFO] [stderr] warning: unknown lint: `clippy` [INFO] [stderr] --> src/grammar/parser/mod.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | #[allow(clippy)] [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unknown_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/set.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::hash::{SipHasher, Hash, Hasher}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/set.rs:103:26 [INFO] [stderr] | [INFO] [stderr] 103 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/int.rs:1:17 [INFO] [stderr] | [INFO] [stderr] 1 | use std::hash::{SipHasher, Hash, Hasher}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/int.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/greedy.rs:1:17 [INFO] [stderr] | [INFO] [stderr] 1 | use std::hash::{SipHasher, Hash, Hasher}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/greedy.rs:45:26 [INFO] [stderr] | [INFO] [stderr] 45 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher::new': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/set.rs:103:26 [INFO] [stderr] | [INFO] [stderr] 103 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher::new': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/int.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher::new': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/greedy.rs:45:26 [INFO] [stderr] | [INFO] [stderr] 45 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/matcher/pattern_source/error.rs:72:57 [INFO] [stderr] | [INFO] [stderr] 72 | BuildError::TestMessage(ref error) => error.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/matcher/pattern_source/error.rs:73:48 [INFO] [stderr] | [INFO] [stderr] 73 | BuildError::Io(ref error) => error.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/matcher/pattern_source/error.rs:74:55 [INFO] [stderr] | [INFO] [stderr] 74 | BuildError::DeserJson(ref error) => error.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/matcher/pattern_source/error.rs:75:55 [INFO] [stderr] | [INFO] [stderr] 75 | BuildError::DeserYaml(ref error) => error.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `LiteralEntry` [INFO] [stderr] --> src/matcher/trie/node/mod.rs:11:30 [INFO] [stderr] | [INFO] [stderr] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `ParserEntry` [INFO] [stderr] --> src/matcher/trie/node/mod.rs:11:44 [INFO] [stderr] | [INFO] [stderr] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/matcher/trie/node/mod.rs:306:17 [INFO] [stderr] | [INFO] [stderr] 306 | let mut entry: &mut Entry = match token { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/matcher/suffix_array/impls.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | let mut entry: &mut Entry = match token { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.80s [INFO] running `"docker" "inspect" "67612bd78c9aea668aab7b393d2b0ac855415ac0ae355b8449a7e873062f9a31"` [INFO] running `"docker" "rm" "-f" "67612bd78c9aea668aab7b393d2b0ac855415ac0ae355b8449a7e873062f9a31"` [INFO] [stdout] 67612bd78c9aea668aab7b393d2b0ac855415ac0ae355b8449a7e873062f9a31 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.37-6/worker-3/1.36.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.37-6/sources/1.36.0/reg/actiondb/0.7.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+1.36.0" "test" "--frozen" "--no-run"` [INFO] [stdout] 80d1fc69ab123f4ffd68a8575d427b2361acd1e1523dd3915241e8a3541d0899 [INFO] running `"docker" "start" "-a" "80d1fc69ab123f4ffd68a8575d427b2361acd1e1523dd3915241e8a3541d0899"` [INFO] [stderr] Compiling actiondb v0.7.0 (/opt/crater/workdir) [INFO] [stderr] warning: unknown lint: `clippy` [INFO] [stderr] --> src/grammar/parser/mod.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | #[allow(clippy)] [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unknown_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/set.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::hash::{SipHasher, Hash, Hasher}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/set.rs:103:26 [INFO] [stderr] | [INFO] [stderr] 103 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/int.rs:1:17 [INFO] [stderr] | [INFO] [stderr] 1 | use std::hash::{SipHasher, Hash, Hasher}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/int.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/greedy.rs:1:17 [INFO] [stderr] | [INFO] [stderr] 1 | use std::hash::{SipHasher, Hash, Hasher}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/greedy.rs:45:26 [INFO] [stderr] | [INFO] [stderr] 45 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher::new': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/set.rs:103:26 [INFO] [stderr] | [INFO] [stderr] 103 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher::new': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/int.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::hash::SipHasher::new': use `std::collections::hash_map::DefaultHasher` instead [INFO] [stderr] --> src/parsers/greedy.rs:45:26 [INFO] [stderr] | [INFO] [stderr] 45 | let mut hasher = SipHasher::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/matcher/pattern_source/error.rs:72:57 [INFO] [stderr] | [INFO] [stderr] 72 | BuildError::TestMessage(ref error) => error.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/matcher/pattern_source/error.rs:73:48 [INFO] [stderr] | [INFO] [stderr] 73 | BuildError::Io(ref error) => error.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/matcher/pattern_source/error.rs:74:55 [INFO] [stderr] | [INFO] [stderr] 74 | BuildError::DeserJson(ref error) => error.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::cause': replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/matcher/pattern_source/error.rs:75:55 [INFO] [stderr] | [INFO] [stderr] 75 | BuildError::DeserYaml(ref error) => error.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `LiteralEntry` [INFO] [stderr] --> src/matcher/trie/node/mod.rs:11:30 [INFO] [stderr] | [INFO] [stderr] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `ParserEntry` [INFO] [stderr] --> src/matcher/trie/node/mod.rs:11:44 [INFO] [stderr] | [INFO] [stderr] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Parser` [INFO] [stderr] --> src/matcher/trie/node/mod.rs:323:19 [INFO] [stderr] | [INFO] [stderr] 323 | use parsers::{Parser, SetParser, IntParser, GreedyParser}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ObjectSafeHash` [INFO] [stderr] --> src/grammar/test.rs:2:34 [INFO] [stderr] | [INFO] [stderr] 2 | use parsers::{SetParser, Parser, ObjectSafeHash, IntParser, GreedyParser, HasLengthConstraint}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/matcher/trie/node/mod.rs:306:17 [INFO] [stderr] | [INFO] [stderr] 306 | let mut entry: &mut Entry = match token { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/matcher/suffix_array/impls.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | let mut entry: &mut Entry = match token { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.99s [INFO] running `"docker" "inspect" "80d1fc69ab123f4ffd68a8575d427b2361acd1e1523dd3915241e8a3541d0899"` [INFO] running `"docker" "rm" "-f" "80d1fc69ab123f4ffd68a8575d427b2361acd1e1523dd3915241e8a3541d0899"` [INFO] [stdout] 80d1fc69ab123f4ffd68a8575d427b2361acd1e1523dd3915241e8a3541d0899 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.37-6/worker-3/1.36.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.37-6/sources/1.36.0/reg/actiondb/0.7.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+1.36.0" "test" "--frozen"` [INFO] [stdout] d2c99154a87e9615e3f7bec5ffcda3864ef82bd87aae93a1f539f371f0afda68 [INFO] running `"docker" "start" "-a" "d2c99154a87e9615e3f7bec5ffcda3864ef82bd87aae93a1f539f371f0afda68"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stderr] Running /opt/crater/target/debug/deps/actiondb-c2d91fa497df7ad1 [INFO] [stdout] [INFO] [stdout] running 81 tests [INFO] [stdout] test grammar::test::test_given_invalid_pattern_as_a_string_when_we_parse_them_then_we_get_error ... ok [INFO] [stdout] test grammar::test::test_given_literal_as_a_string_when_it_is_parsed_then_we_stop_at_the_parsers_begin ... ok [INFO] [stdout] test grammar::test::test_given_greedy_parser_when_we_parse_it_then_we_get_the_right_result ... ok [INFO] [stdout] test grammar::test::test_given_int_parser_with_optional_parameters_when_we_parse_it_then_we_get_the_right_parser ... ok [INFO] [stdout] test grammar::test::test_given_parser_as_a_string_when_its_name_is_valid_then_we_get_the_instantiated_parser ... ok [INFO] [stdout] test grammar::test::test_given_greedy_parser_when_there_is_no_literal_after_it_then_we_take_all_the_remaining_intput_as_matching ... ok [INFO] [stdout] test grammar::test::test_given_parser_as_a_string_when_it_is_parsed_then_we_get_the_instantiated_parser ... ok [INFO] [stdout] test grammar::test::test_given_parser_as_a_string_when_its_name_is_invalid_then_we_dont_get_the_instantiated_parser ... ok [INFO] [stdout] test grammar::test::test_given_pattern_as_a_string_when_it_is_parsed_with_the_grammar_we_got_the_right_compiled_pattern ... ok [INFO] [stdout] test grammar::test::test_given_parser_when_there_is_a_dot_in_its_name_then_it_is_ok ... ok [INFO] [stdout] test grammar::test::test_given_set_parser_with_optional_parameters_when_we_parse_it_then_we_get_the_right_parser ... ok [INFO] [stdout] test grammar::test::test_given_set_parser_with_character_set_parameter_when_we_parse_it_then_we_get_the_right_parser ... ok [INFO] [stdout] test grammar::test::test_given_parser_as_a_string_when_its_type_isnt_exist_then_we_get_an_error ... ok [INFO] [stdout] test grammar::test::test_given_valid_pattern_when_it_does_not_have_a_name_then_we_can_parse_the_pattern ... ok [INFO] [stdout] test grammar::test::test_given_valid_pattern_when_it_contains_cr_character_then_we_can_parse_it ... ok [INFO] [stdout] test grammar::test::test_given_string_which_contains_escaped_chars_when_we_parse_it_then_we_get_the_right_string ... ok [INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_it_does_not_have_the_optional_paramaters_then_pattern_can_be_built_from_it ... ok [INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_it_does_not_have_the_pattern_field_then_it_cannot_be_created ... ok [INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_it_does_not_have_a_name_it_can_be_successfully_deserialized ... ok [INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_with_invalid_uuid_when_we_try_to_create_pattern_then_it_fails ... ok [INFO] [stdout] test matcher::pattern::test::test_given_json_document_when_it_does_not_contain_errors_then_pattern_can_be_created_from_it ... ok [INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_its_uuid_is_invalid_then_pattern_cannot_be_built_from_it ... ok [INFO] [stdout] test matcher::pattern::testmessage::test::test_given_json_test_message_when_it_contains_not_just_the_valid_fields_then_we_return_an_error ... ok [INFO] [stdout] test matcher::pattern::testmessage::test::test_given_json_test_message_when_it_does_not_have_a_message_field_then_error_is_returned ... ok [INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_test_messages_are_specified_then_they_are_parsed ... ok [INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_its_pattern_is_invalid_then_pattern_cannot_be_built_from_it ... ok [INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_a_literal_entry_is_found_then_it_is_returned ... ok [INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_during_parsing_the_parsed_value_is_not_empty_but_we_cant_go_forward_then_the_parsing_is_unsuccessful ... ok [INFO] [stdout] test matcher::suffix_array::test::test_given_parser_trie_when_a_parser_is_not_matched_then_the_parser_stack_is_unwind_so_an_untried_parser_is_tried ... ok [INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_a_parser_entry_is_inserted_it_is_only_added_if_it_is_a_new_parser ... ok [INFO] [stdout] test matcher::pattern::testmessage::test::test_given_json_test_message_when_it_does_not_have_the_optional_fields_then_it_can_be_loaded_successfully ... ok [INFO] [stdout] test matcher::pattern::testmessage::test::test_given_json_test_message_when_it_is_deserialized_then_we_get_the_right_instance ... ok [INFO] [stdout] test matcher::result::test::test_given_match_result_when_a_parse_result_is_inserted_then_we_use_only_the_ones_where_the_parser_has_a_name ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_empty_parser_node_when_it_is_used_for_parsing_then_it_returns_none ... ok [INFO] [stdout] test matcher::trie::node::literal::test::given_literal_node_when_it_is_compared_to_an_other_literal_node_then_only_their_first_chars_are_checked ... ok [INFO] [stdout] test matcher::trie::node::test::given_empty_trie_when_literals_are_inserted_then_they_can_be_looked_up ... ok [INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_there_is_no_match_then_the_parsing_is_unsuccessful ... ok [INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_the_match_is_too_short_then_we_dont_panic ... ok [INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_literals_are_inserted_then_it_can_find_the_string_with_the_longest_common_prefix ... ok [INFO] [stdout] test matcher::trie::node::literal::test::given_literal_node_when_its_leafness_is_checked_the_right_result_is_returned ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_empty_trie_when_literals_are_inserted_the_child_counts_are_right ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_empty_trie_when_literals_are_inserted_the_nodes_are_split_on_the_right_place ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_node_when_the_message_is_too_short_we_do_not_try_to_unwrap_a_childs_pattern ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_the_to_be_parsed_literal_is_a_prefix_in_the_tree_then_the_parse_result_is_none ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_a_parser_is_not_matched_then_the_parser_stack_is_unwind_so_an_untried_parser_is_tried ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_node_when_different_parsers_are_inserted_then_they_are_not_merged ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_some_patterns_are_inserted_then_literal_matches_have_precedence_over_parser_matches ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_pattern_with_two_neighbouring_parser_when_the_pattern_is_inserted_into_the_trie_then_everything_is_ok ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_pattern_when_inserted_into_the_parser_tree_then_the_pattern_is_stored_in_the_leaf ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_the_to_be_parsed_literal_is_not_matched_then_the_parse_result_is_none ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_some_patterns_are_inserted_then_fully_matching_literals_are_returned_as_empty_vectors ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_some_patterns_are_inserted_then_texts_can_be_parsed ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_patterns_when_inserted_into_the_prefix_tree_then_the_proper_tree_is_built ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_trie_when_literals_are_looked_up_then_the_edges_in_the_trie_are_not_counted_as_literals ... ok [INFO] [stdout] test matcher::trie::node::test::test_given_node_when_the_same_parsers_are_inserted_then_they_are_merged_into_one_parsernode ... ok [INFO] [stdout] test parsers::greedy::test::test_given_greedy_parser_when_the_end_string_is_found_in_the_value_then_the_parser_matches ... ok [INFO] [stdout] test parsers::int::test::test_given_int_parser_when_the_match_is_empty_then_the_result_isnt_successful ... ok [INFO] [stdout] test parsers::has_length_constraint::test::test_given_parser_when_the_maximum_match_length_is_set_then_the_longer_matches_are_discarded ... ok [INFO] [stdout] test parsers::has_length_constraint::test::test_given_parser_when_the_minimum_match_length_is_set_then_the_shorter_matches_are_discarded ... ok [INFO] [stdout] test parsers::int::test::test_given_matching_string_when_it_is_parsed_then_it_matches ... ok [INFO] [stdout] test parsers::int::test::test_given_matching_string_which_is_longer_than_the_max_match_length_when_it_is_parsed_then_it_does_not_match ... ok [INFO] [stdout] test parsers::set::test::test_given_minimum_match_length_when_a_match_is_shorter_it_doesnt_count_as_a_match ... ok [INFO] [stdout] test parsers::set::test::test_given_minimum_and_maximum_match_length_when_a_proper_length_match_occures_it_counts_as_a_match ... ok [INFO] [stdout] test parsers::set::test::test_given_maximum_match_length_when_a_match_is_longer_it_doesnt_count_as_a_match ... ok [INFO] [stdout] test parsers::greedy::test::test_given_greedy_parser_when_the_end_string_is_not_found_in_the_value_then_the_parser_doesnt_match ... ok [INFO] [stdout] test parsers::has_length_constraint::test::test_given_parser_when_the_match_length_is_not_constrained_then_the_match_length_is_ok_in_every_case ... ok [INFO] [stdout] test parsers::set::test::test_given_empty_string_when_parsed_it_wont_match ... ok [INFO] [stdout] test utils::common_prefix::test::given_a_string_when_longest_common_prefix_is_calulated_then_the_result_is_right ... ok [INFO] [stdout] test parsers::set::test::test_given_matching_string_when_parsed_it_matches ... ok [INFO] [stdout] test parsers::set::test::test_given_not_matching_string_when_parsed_it_wont_match ... ok [INFO] [stdout] test parsers::set::test::test_given_set_parser_and_when_differently_parametrized_instances_are_hashed_then_the_hashes_are_different ... ok [INFO] [stdout] test utils::common_prefix::test::test_given_a_string_when_truncated_by_left_then_the_result_is_the_expected ... ok [INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_length_is_queried_it_is_ok ... ok [INFO] [stdout] test utils::common_prefix::test::test_given_a_string_when_truncated_by_right_then_the_result_is_the_expected ... ok [INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_of_literal_nodes_when_binary_search_by_are_used_the_right_node_is_found ... ok [INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_pushed_they_get_sorted ... ok [INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_pushed_they_be_get ... ok [INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_searched_by_custom_cmp_func_they_can_be_found ... ok [INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_found_then_their_references_are_returned ... ok [INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_searched_they_can_be_found ... ok [INFO] [stdout] test grammar::test::test_given_invalid_string_when_we_parse_it_then_the_parser_returns_with_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 81 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/lib-3a9a954d4635d66c [INFO] [stdout] [INFO] [stdout] running 15 tests [INFO] [stdout] test file::test_given_not_existing_yaml_pattern_file_when_it_is_opened_we_get_io_error ... ok [INFO] [stdout] test file::test_given_a_non_existing_pattern_file_when_it_is_deserialized_then_we_get_io_error ... ok [INFO] [stdout] test file::test_given_an_invalid_json_pattern_file_when_it_is_deserialized_then_we_get_deserialization_error ... ok [INFO] [stdout] test file::test_given_a_valid_json_pattern_file_when_it_is_deserialized_then_we_can_extract_the_patterns_from_it ... ok [INFO] [stdout] test matcher::test_given_json_file_when_its_syntax_is_not_ok_then_matcher_cannot_be_built_from_it ... ok [INFO] [stdout] test matcher::test_given_json_file_when_a_pattern_contains_cr_characters_then_we_handle_it_properly ... ok [INFO] [stdout] test matcher::test_given_json_file_when_an_expected_value_is_not_found_then_we_fail ... ok [INFO] [stdout] test matcher::test_given_non_existing_json_file_when_it_is_loaded_then_matcher_cannot_be_created_from_it ... ok [INFO] [stdout] test file::test_given_valid_yaml_pattern_file_when_it_is_deserialized_then_we_get_the_deserialized_contents ... ok [INFO] [stdout] test matcher::test_given_json_file_when_a_pattern_contains_test_tags_then_we_only_check_the_expected_ones ... ok [INFO] [stdout] test matcher::test_given_json_file_when_its_syntax_is_ok_then_matcher_can_be_built_from_it ... ok [INFO] [stderr] Doc-tests actiondb [INFO] [stdout] test matcher::test_given_json_file_when_a_pattern_contains_test_values_then_we_only_check_the_expected_ones ... ok [INFO] [stdout] test matcher::test_given_json_file_when_we_check_the_test_messages_then_the_resulting_pattern_should_be_the_tested_one ... ok [INFO] [stdout] test matcher::test_given_json_file_when_matcher_is_created_by_factory_then_the_right_file_type_is_used_based_on_the_extension ... ok [INFO] [stdout] test matcher::test_given_json_file_when_the_tests_contain_tags_but_the_pattern_does_not_have_them_then_we_fail ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [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 [INFO] [stdout] [INFO] running `"docker" "inspect" "d2c99154a87e9615e3f7bec5ffcda3864ef82bd87aae93a1f539f371f0afda68"` [INFO] running `"docker" "rm" "-f" "d2c99154a87e9615e3f7bec5ffcda3864ef82bd87aae93a1f539f371f0afda68"` [INFO] [stdout] d2c99154a87e9615e3f7bec5ffcda3864ef82bd87aae93a1f539f371f0afda68