[INFO] cloning repository https://github.com/vivsh/gaman
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vivsh/gaman" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvivsh%2Fgaman", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvivsh%2Fgaman'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f46a90adf4a579bcd71550feb33a9dcbee211c44
[INFO] testing vivsh/gaman against 1.100.0-beta.1 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvivsh%2Fgaman" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/vivsh/gaman
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/vivsh/gaman
[INFO] tweaked toml for git repo https://github.com/vivsh/gaman written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vivsh/gaman on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/vivsh/gaman 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:85:12
[INFO] [stderr]    |
[INFO] [stderr] 85 | homepage = "https://github.com/vivsh/gaman"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 90 | repository = "https://github.com/vivsh/gaman"
[INFO] [stderr]    |              --------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gaman` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714
[INFO] running `Command { std: "docker" "start" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714", 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" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714", 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" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:85:12
[INFO] [stderr]    |
[INFO] [stderr] 85 | homepage = "https://github.com/vivsh/gaman"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 90 | repository = "https://github.com/vivsh/gaman"
[INFO] [stderr]    |              --------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gaman` (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling openssl v0.10.78
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling openssl-sys v0.9.114
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling tokio v1.51.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling stacker v0.1.23
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling argh_shared v0.1.19
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling ar_archive_writer v0.5.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling psm v0.1.30
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling recursive-proc-macro-impl v0.1.1
[INFO] [stderr]    Compiling recursive v0.1.1
[INFO] [stderr]    Compiling argh_derive v0.1.19
[INFO] [stderr]    Compiling sqlparser v0.62.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling argh v0.1.19
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling gaman-core v0.3.38 (/opt/rustwide/workdir/gaman-core)
[INFO] [stderr]    Compiling gaman v0.3.38 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 17s
[INFO] running `Command { std: "docker" "inspect" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714", 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" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:85:12
[INFO] [stderr]    |
[INFO] [stderr] 85 | homepage = "https://github.com/vivsh/gaman"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 90 | repository = "https://github.com/vivsh/gaman"
[INFO] [stderr]    |              --------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gaman` (manifest) generated 1 warning
[INFO] [stderr]    Compiling gaman v0.3.38 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 37.86s
[INFO] running `Command { std: "docker" "inspect" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714", 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" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:85:12
[INFO] [stderr]    |
[INFO] [stderr] 85 | homepage = "https://github.com/vivsh/gaman"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 90 | repository = "https://github.com/vivsh/gaman"
[INFO] [stderr]    |              --------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gaman` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.45s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/gaman/57dcdeaae60a8283/out/gaman-57dcdeaae60a8283)
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test conf::redaction_tests::redacted_database_url_hides_authority_only_password ... ok
[INFO] [stdout] test conf::tests::parses_sqlite_dialect_from_database_url ... ok
[INFO] [stdout] test conf::redaction_tests::redacted_database_url_hides_password ... ok
[INFO] [stdout] test conf::tests::read_only_validation_does_not_require_writable_migrations ... ok
[INFO] [stdout] test conf::tests::parses_postgresql_dialect_from_database_url ... ok
[INFO] [stdout] test conf::tests::parses_sqlite_memory_dialect_from_database_url ... ok
[INFO] [stdout] test conf::tests::validate_accepts_directory_schema_path ... ok
[INFO] [stdout] test conf::tests::validate_rejects_disabled_mariadb_dialect ... ok
[INFO] [stdout] test conf::tests::validate_accepts_matching_database_url_and_dialect ... ok
[INFO] [stdout] test conf::tests::validate_accepts_missing_migrations_dir_with_writable_parent ... ok
[INFO] [stdout] test conf::tests::validate_rejects_empty_database_url ... ok
[INFO] [stdout] test conf::tests::validate_rejects_file_migrations_dir ... ok
[INFO] [stdout] test executor::postgres::inspection::tests::normalize_index_predicate_strips_balanced_outer_parens ... ok
[INFO] [stdout] test executor::postgres::inspection::tests::strip_check_wrapper_removes_outer_check ... ok
[INFO] [stdout] test conf::tests::validate_rejects_disabled_mysql_dialect ... ok
[INFO] [stdout] test executor::sqlite::inspection::tests::parse_trigger_sql_recovers_trigger_metadata ... ok
[INFO] [stdout] test executor::sqlite::inspection::tests::parse_create_table_sql_recovers_generated_columns_and_constraints ... ok
[INFO] [stdout] test prompter::tests::prompt_one_rejects_zero_choice_without_panicking ... ok
[INFO] [stdout] test prompter::tests::prompt_one_uses_message_spec_options ... ok
[INFO] [stdout] test runner_factory::tests::embedded_factory_rejects_directory_mismatch ... ok
[INFO] [stdout] test conf::tests::validate_rejects_mismatched_database_url_and_dialect ... ok
[INFO] [stdout] test conf::tests::validate_rejects_missing_migrations_parent ... ok
[INFO] [stdout] test runner_factory::tests::embedded_store_rejects_duplicate_ids ... ok
[INFO] [stdout] test runner_factory::tests::embedded_store_qualifies_child_history ... ok
[INFO] [stdout] test executor::postgres::inspection::tests::function_key_normalizes_legacy_catalog_arguments ... ok
[INFO] [stdout] test schema_file::tests::collect_schema_check_entries_reports_missing_path ... ok
[INFO] [stdout] test schema_file::tests::collect_schema_check_entries_keeps_non_sql_schema_inputs_visible ... ok
[INFO] [stdout] test schema_file::tests::load_schema_dir_composes_sql_table_with_yaml_managed_rows ... ok
[INFO] [stdout] test schema_file::tests::load_schema_dir_merges_supported_file_types ... ok
[INFO] [stdout] test conf::tests::parses_postgres_dialect_from_database_url ... ok
[INFO] [stdout] test schema_file::tests::load_schema_file_parses_sql ... ok
[INFO] [stdout] test schema_file::tests::load_schema_dir_rejects_duplicate_table_names ... ok
[INFO] [stdout] test conf::redaction_tests::redacted_database_url_preserves_url_without_credentials ... ok
[INFO] [stdout] test schema_file::tests::adoption_directory_write_refuses_overwrite ... ok
[INFO] [stdout] test schema_file::tests::adoption_yaml_write_and_sql_rejection ... ok
[INFO] [stdout] test schema_file::tests::schema_check_ordering_breaks_equal_timestamps_by_path ... ok
[INFO] [stdout] test conf::tests::schema_check_validation_skips_migration_directory_validation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/gaman/8342f6bdc73c1e47/out/gaman-8342f6bdc73c1e47)
[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/bin/gaman-evidence-doc.rs (/opt/rustwide/target/debug/build/gaman/a45a1777bc43886e/out/gaman_evidence_doc-a45a1777bc43886e)
[INFO] [stderr]      Running unittests src/bin/gaman-support-matrix.rs (/opt/rustwide/target/debug/build/gaman/62f85a10aba932bd/out/gaman_support_matrix-62f85a10aba932bd)
[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 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/cli.rs (/opt/rustwide/target/debug/build/gaman/b4d84964707fc013/out/cli-b4d84964707fc013)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test check_schema_postgres_does_not_create_prepared_table ... ok
[INFO] [stdout] test banner_is_dialect_neutral ... ok
[INFO] [stdout] test config_rejects_disabled_mysql ... ok
[INFO] [stdout] test check_schema_ignores_yaml_without_a_database_connection ... ok
[INFO] [stdout] test config_validates_overridden_migrations_dir ... ok
[INFO] [stdout] test config_redacts_credentials_by_default ... ok
[INFO] [stdout] test config_can_show_full_database_url_explicitly ... ok
[INFO] [stdout] test apply_accepts_a_positional_target ... ok
[INFO] [stdout] test make_rejects_conflicting_modes ... ok
[INFO] [stdout] test check_schema_reports_prepare_failures ... ok
[INFO] [stdout] test check_schema_reports_checked_and_ignored_files_without_migrations ... ok
[INFO] [stdout] test make_dry_run_prints_generated_migration_yaml ... ok
[INFO] [stdout] test show_help_documents_unique_prefixes ... ok
[INFO] [stdout] test make_reports_actionable_replay_failures ... ok
[INFO] [stdout] test show_accepts_read_only_migration_directory ... ok
[INFO] [stdout] test show_is_offline_and_omits_application_status ... ok
[INFO] [stdout] test top_level_help_documents_version ... ok
[INFO] [stdout] test sql_accepts_a_unique_migration_prefix ... ok
[INFO] [stdout] test make_filters_reject_incompatible_modes ... ok
[INFO] [stdout] test show_reports_ambiguous_prefixes ... ok
[INFO] [stdout] test filtered_dry_run_matches_persisted_output ... ok
[INFO] [stdout] test rollback_is_not_a_cli_subcommand ... ok
[INFO] [stdout] test verbose_connection_failures_redact_credentials ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/directory_migration_store.rs (/opt/rustwide/target/debug/build/gaman/430d64bf64118cd4/out/directory_migration_store-430d64bf64118cd4)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test directory_store_rejects_symlinked_migration ... ok
[INFO] [stdout] test directory_store_refuses_overwrite ... ok
[INFO] [stdout] test directory_store_saves_and_loads_migrations ... ok
[INFO] [stdout] test directory_store_loads_read_only_files ... ok
[INFO] [stdout] test directory_store_concurrent_save_has_one_winner ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/evidence_publication.rs (/opt/rustwide/target/debug/build/gaman/cc37ce6208ff712d/out/evidence_publication-cc37ce6208ff712d)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test failed_yaml_publication_preserves_accepted_file ... ok
[INFO] [stderr]      Running tests/native_runner/main.rs (/opt/rustwide/target/debug/build/gaman/85527ddc9066835f/out/native_runner-85527ddc9066835f)
[INFO] [stdout] test atomic_yaml_publication_replaces_complete_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test failures::checked_failure_rolls_back_prior_schema_and_data ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test failures::insert_collision_retains_sqlstate ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test failures::multiple_affected_rows_roll_back ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test failures::stale_rollback_preserves_tracking ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test failures::stale_updates_and_deletes_fail_checked ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test fields::lifecycle::generated_field_addition_roundtrip ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test fields::lifecycle::ownership_guard_does_not_mutate_database_values ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test fields::preconditions::ownership_guard_requires_exactly_one_row ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test fields::preconditions::rollback_guard_rejects_stale_expected_values ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test forwarding::affected_execution_preserves_counts_and_connection ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test lifecycle::directory_managed_row_lifecycle ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test lifecycle::embedded_managed_row_lifecycle ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test profiles::directory_model_profiles_regression ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test forwarding::affected_execution_preserves_connection_error_category ... ok
[INFO] [stdout] test profiles::embedded_model_profiles_regression ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test profiles::profile_failure_rolls_back_schema_and_presets ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] test verification::native_verification_and_repair_preserve_ownership ... ignored, requires dbharness; run with --include-ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 16 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/offline.rs (/opt/rustwide/target/debug/build/gaman/5f92e4211ee3bb6e/out/offline-5f92e4211ee3bb6e)
[INFO] [stdout]   ok: Duplicate clarifier decisions fail before rewriting operations. (/opt/rustwide/workdir/tests/cases/offline/clarifier/duplicate_decision_error.yaml)
[INFO] [stdout]   ok: Empty type-cast decisions fail before operation rewriting. (/opt/rustwide/workdir/tests/cases/offline/clarifier/empty_cast_error.yaml)
[INFO] [stdout]   ok: Empty not-null default decisions fail before operation rewriting. (/opt/rustwide/workdir/tests/cases/offline/clarifier/empty_default_error.yaml)
[INFO] [stdout]   ok: A rename decision with an invalid candidate fails deterministically. (/opt/rustwide/workdir/tests/cases/offline/clarifier/invalid_candidate_error.yaml)
[INFO] [stdout]   ok: NotNullDefault records a default for a newly added non-null column. (/opt/rustwide/workdir/tests/cases/offline/clarifier/not_null_add_default_action.yaml)
[INFO] [stdout]   ok: NotNullNullable keeps a newly added column nullable. (/opt/rustwide/workdir/tests/cases/offline/clarifier/not_null_add_nullable_action.yaml)
[INFO] [stdout]   ok: Adding a non-null column without a default emits a structured not-null-add clarification. (/opt/rustwide/workdir/tests/cases/offline/clarifier/not_null_add_prompt.yaml)
[INFO] [stdout]   ok: NotNullDefault for a nullability change emits a backfill statement before altering the column. (/opt/rustwide/workdir/tests/cases/offline/clarifier/not_null_change_default_action.yaml)
[INFO] [stdout]   ok: NotNullManual for a nullability change acknowledges the risk and leaves the alter unchanged. (/opt/rustwide/workdir/tests/cases/offline/clarifier/not_null_change_manual_action.yaml)
[INFO] [stdout]   ok: NotNullNullable for a nullability change keeps the target column nullable. (/opt/rustwide/workdir/tests/cases/offline/clarifier/not_null_change_nullable_action.yaml)
[INFO] [stdout]   ok: Tightening nullability emits a structured not-null-change clarification. (/opt/rustwide/workdir/tests/cases/offline/clarifier/not_null_change_prompt.yaml)
[INFO] [stdout]   ok: NotNullManual acknowledges the risk and leaves the non-null add unchanged for manual handling. (/opt/rustwide/workdir/tests/cases/offline/clarifier/not_null_manual_action.yaml)
[INFO] [stdout]   ok: Partial decisions return only the still-pending clarification set. (/opt/rustwide/workdir/tests/cases/offline/clarifier/partial_decision_pending.yaml)
[INFO] [stdout]   ok: Column drop/add emits a structured rename-column clarification. (/opt/rustwide/workdir/tests/cases/offline/clarifier/rename_column_prompt.yaml)
[INFO] [stdout]   ok: RenameTo rewrites an enum label replacement into a rename-enum-value operation. (/opt/rustwide/workdir/tests/cases/offline/clarifier/rename_enum_value_action.yaml)
[INFO] [stdout]   ok: RenameNo for an enum value leaves enum replacement operations unchanged. (/opt/rustwide/workdir/tests/cases/offline/clarifier/rename_enum_value_no_action.yaml)
[INFO] [stdout]   ok: Enum label replacement emits a structured rename-enum-value clarification. (/opt/rustwide/workdir/tests/cases/offline/clarifier/rename_enum_value_prompt.yaml)
[INFO] [stdout]   ok: RenameNo keeps a column drop/add pair instead of rewriting it to a rename. (/opt/rustwide/workdir/tests/cases/offline/clarifier/rename_no_action.yaml)
[INFO] [stdout]   ok: RenameNo for a table leaves drop/create operations unchanged. (/opt/rustwide/workdir/tests/cases/offline/clarifier/rename_table_no_action.yaml)
[INFO] [stdout]   ok: Table drop/create emits a structured rename-table clarification. (/opt/rustwide/workdir/tests/cases/offline/clarifier/rename_table_prompt.yaml)
[INFO] [stdout]   ok: TypeCastImplicit allows a type change without an explicit cast expression. (/opt/rustwide/workdir/tests/cases/offline/clarifier/type_cast_implicit_action.yaml)
[INFO] [stdout]   ok: Changing a column type emits a structured type-cast clarification. (/opt/rustwide/workdir/tests/cases/offline/clarifier/type_cast_prompt.yaml)
[INFO] [stdout]   ok: KeepType preserves an explicitly approved custom type in the generated migration. (/opt/rustwide/workdir/tests/cases/offline/clarifier/unknown_type_keep_type_action.yaml)
[INFO] [stdout]   ok: Unknown type emits a structured type clarification with deterministic suggestions. (/opt/rustwide/workdir/tests/cases/offline/clarifier/unknown_type_prompt.yaml)
[INFO] [stdout]   ok: UseType rewrites an unknown type to a suggested canonical type before diffing. (/opt/rustwide/workdir/tests/cases/offline/clarifier/unknown_type_use_type_action.yaml)
[INFO] [stdout]   ok: Diff adds a non-null column safely when a default is provided. (/opt/rustwide/workdir/tests/cases/offline/diff/add_non_null_column_with_default.yaml)
[INFO] [stdout]   ok: Diff asks before adding a non-null column without a default. (/opt/rustwide/workdir/tests/cases/offline/diff/add_non_null_column_without_default_error.yaml)
[INFO] [stdout]   ok: Diff a desired schema into a single add_column migration. (/opt/rustwide/workdir/tests/cases/offline/diff/add_nullable_email.yaml)
[INFO] [stdout]   ok: Diff emits an alter-column operation when a default is added. (/opt/rustwide/workdir/tests/cases/offline/diff/alter_default_added.yaml)
[INFO] [stdout]   ok: A type-cast decision records explicit cast SQL for an altered column type. (/opt/rustwide/workdir/tests/cases/offline/diff/alter_type_with_cast_decision.yaml)
[INFO] [stdout]   ok: Diff adds a table-level check constraint. (/opt/rustwide/workdir/tests/cases/offline/diff/check_constraint_added.yaml)
[INFO] [stdout]   ok: Changing composite foreign-key columns emits drop and add operations. (/opt/rustwide/workdir/tests/cases/offline/diff/composite_fk_change.yaml)
[INFO] [stdout]   ok: Diff creates a table from an empty replay state. (/opt/rustwide/workdir/tests/cases/offline/diff/create_table.yaml)
[INFO] [stdout]   ok: Diff drops a table that no longer exists in the desired schema. (/opt/rustwide/workdir/tests/cases/offline/diff/drop_table.yaml)
[INFO] [stdout]   ok: Diff appends enum labels through AlterEnum. (/opt/rustwide/workdir/tests/cases/offline/diff/enum_append.yaml)
[INFO] [stdout]   ok: A table filter includes its managed-row insertion and excludes an independent table change. (/opt/rustwide/workdir/tests/cases/offline/diff/filtered_managed_rows.yaml)
[INFO] [stdout]   ok: Changing only a foreign key on_update action replaces the foreign key. (/opt/rustwide/workdir/tests/cases/offline/diff/fk_on_update_change.yaml)
[INFO] [stdout]   ok: Real function body changes produce AlterFunction. (/opt/rustwide/workdir/tests/cases/offline/diff/function_body_changed.yaml)
[INFO] [stdout]   ok: Formatting-only function body changes do not create migration churn. (/opt/rustwide/workdir/tests/cases/offline/diff/function_formatting_noop.yaml)
[INFO] [stdout]   ok: Function signature changes create the new overload before dropping the old overload. (/opt/rustwide/workdir/tests/cases/offline/diff/function_signature_changed.yaml)
[INFO] [stdout]   ok: Diff adds a generated column and renders the generated expression. (/opt/rustwide/workdir/tests/cases/offline/diff/generated_column_added.yaml)
[INFO] [stdout]   ok: Diff adds an index for a modeled table. (/opt/rustwide/workdir/tests/cases/offline/diff/index_added.yaml)
[INFO] [stdout]   ok: Diff drops an index removed from the desired schema. (/opt/rustwide/workdir/tests/cases/offline/diff/index_dropped.yaml)
[INFO] [stdout]   ok: Nested generated and check expressions remain intact in granular operations. (/opt/rustwide/workdir/tests/cases/offline/diff/nested_generated_and_check_expressions.yaml)
[INFO] [stdout]   ok: No migration is generated when the schema matches the current state. (/opt/rustwide/workdir/tests/cases/offline/diff/no_changes.yaml)
[INFO] [stdout]   ok: AcceptRisk stores and renders an advanced opaque index from SQL input. (/opt/rustwide/workdir/tests/cases/offline/diff/opaque_index_accept.yaml)
[INFO] [stdout]   ok: Changing an owned opaque index definition requires coarse replacement clarification. (/opt/rustwide/workdir/tests/cases/offline/diff/opaque_index_change_prompt.yaml)
[INFO] [stdout]   ok: Removing an owned opaque index requires destructive clarification. (/opt/rustwide/workdir/tests/cases/offline/diff/opaque_index_drop_prompt.yaml)
[INFO] [stdout]   ok: Opaque index formatting and comments do not create a migration. (/opt/rustwide/workdir/tests/cases/offline/diff/opaque_index_formatting_noop.yaml)
[INFO] [stdout]   ok: SQL input asks before managing an advanced index as opaque SQL. (/opt/rustwide/workdir/tests/cases/offline/diff/opaque_index_introduction_prompt.yaml)
[INFO] [stdout]   ok: PostgreSQL SQL function parameter defaults survive parsing and generated migration rendering. (/opt/rustwide/workdir/tests/cases/offline/diff/postgres_function_argument_default.yaml)
[INFO] [stdout]   ok: Explicit function dependencies order PostgreSQL helper creates before a dependent alter. (/opt/rustwide/workdir/tests/cases/offline/diff/postgres_function_dependency_order.yaml)
[INFO] [stdout]   ok: Accepted PostgreSQL UNLOGGED metadata renders in the table header. (/opt/rustwide/workdir/tests/cases/offline/diff/postgres_unlogged_table_accept.yaml)
[INFO] [stdout]   ok: PostgreSQL unmanaged UNLOGGED table syntax requires clarification. (/opt/rustwide/workdir/tests/cases/offline/diff/postgres_unlogged_table_prompt.yaml)
[INFO] [stdout]   ok: Primary-key shape changes are not generated automatically. (/opt/rustwide/workdir/tests/cases/offline/diff/primary_key_mutation_error.yaml)
[INFO] [stdout]   ok: A rename-column decision rewrites drop/add into a rename operation. (/opt/rustwide/workdir/tests/cases/offline/diff/rename_column_with_decision.yaml)
[INFO] [stdout]   ok: A rename-table decision rewrites drop/create into a rename operation. (/opt/rustwide/workdir/tests/cases/offline/diff/rename_table_with_decision.yaml)
[INFO] [stdout]   ok: Accepted SQLite STRICT and WITHOUT ROWID options render in the table tail. (/opt/rustwide/workdir/tests/cases/offline/diff/sqlite_strict_without_rowid_accept.yaml)
[INFO] [stdout]   ok: Real trigger query changes produce AlterTrigger. (/opt/rustwide/workdir/tests/cases/offline/diff/trigger_query_changed.yaml)
[INFO] [stdout]   ok: Formatting-only trigger query changes do not create migration churn. (/opt/rustwide/workdir/tests/cases/offline/diff/trigger_query_formatting_noop.yaml)
[INFO] [stdout]   ok: Diff adds a table-level unique constraint. (/opt/rustwide/workdir/tests/cases/offline/diff/unique_constraint_added.yaml)
[INFO] [stdout]   ok: Accepted unmanaged table option changes record metadata without emitting SQL. (/opt/rustwide/workdir/tests/cases/offline/diff/unmanaged_options_change_ack.yaml)
[INFO] [stdout]   ok: Unmanaged table option whitespace does not create a migration. (/opt/rustwide/workdir/tests/cases/offline/diff/unmanaged_options_formatting_noop.yaml)
[INFO] [stdout]   ok: Real view definition changes produce ReplaceView. (/opt/rustwide/workdir/tests/cases/offline/diff/view_definition_changed.yaml)
[INFO] [stdout]   ok: Formatting-only view definition changes do not create migration churn. (/opt/rustwide/workdir/tests/cases/offline/diff/view_formatting_noop.yaml)
[INFO] [stdout]   ok: End-to-end offline planning generates, replays, and renders a migration. (/opt/rustwide/workdir/tests/cases/offline/end_to_end/add_email.yaml)
[INFO] [stdout]   ok: MariaDB offline planning creates replays and renders a modeled table. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/end_to_end/mariadb_create_table.yaml)
[INFO] [stdout]   ok: MySQL offline planning creates replays and renders a modeled table. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/end_to_end/mysql_create_table.yaml)
[INFO] [stdout]   ok: MariaDB stored functions are accepted through opaque source fallback. (/opt/rustwide/workdir/tests/cases/offline/parser/mariadb/mariadb_create_function_parse_error.yaml)
[INFO] [stdout]   ok: MariaDB triggers are accepted as opaque table-owned entities. (/opt/rustwide/workdir/tests/cases/offline/parser/mariadb/mariadb_create_trigger.yaml)
[INFO] [stdout]   ok: MySQL fulltext indexes are accepted as opaque owned indexes. (/opt/rustwide/workdir/tests/cases/offline/parser/mysql/mysql_create_fulltext_index_parse_error.yaml)
[INFO] [stdout]   ok: MySQL stored functions are accepted through opaque source fallback. (/opt/rustwide/workdir/tests/cases/offline/parser/mysql/mysql_create_function_parse_error.yaml)
[INFO] [stdout]   ok: MySQL prefix indexes are accepted as opaque owned indexes. (/opt/rustwide/workdir/tests/cases/offline/parser/mysql/mysql_create_prefix_index.yaml)
[INFO] [stdout]   ok: MySQL tables lower columns, auto increment, defaults, constraints, and table options. (/opt/rustwide/workdir/tests/cases/offline/parser/mysql/mysql_create_table_basic.yaml)
[INFO] [stdout]   ok: MySQL tables lower composite primary and foreign keys. (/opt/rustwide/workdir/tests/cases/offline/parser/mysql/mysql_create_table_composite_fk.yaml)
[INFO] [stdout]   ok: MySQL triggers are accepted as opaque table-owned entities. (/opt/rustwide/workdir/tests/cases/offline/parser/mysql/mysql_create_trigger.yaml)
[INFO] [stdout]   ok: PostgreSQL COMMENT is rejected because parser input is CREATE-only. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_comment_unsupported.yaml)
[INFO] [stdout]   ok: PostgreSQL CREATE COLLATION is rejected because Schema does not model collations. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_collation_unsupported.yaml)
[INFO] [stdout]   ok: PostgreSQL event triggers are reported as parse errors. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_event_trigger_parse_error.yaml)
[INFO] [stdout]   ok: PostgreSQL parser and Gaman lowering handle a simple SQL function. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_function.yaml)
[INFO] [stdout]   ok: PostgreSQL materialized view WITH DATA syntax is reported as a parse error. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_materialized_view_tail_parse_error.yaml)
[INFO] [stdout]   ok: PostgreSQL parser and lowering preserve partial index predicates. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_partial_index.yaml)
[INFO] [stdout]   ok: PostgreSQL CREATE POLICY is rejected because Schema does not model policies. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_policy_unsupported.yaml)
[INFO] [stdout]   ok: PostgreSQL logical replication publications are reported as parse errors. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_publication_parse_error.yaml)
[INFO] [stdout]   ok: PostgreSQL parser and Gaman lowering handle a basic table. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_table_basic.yaml)
[INFO] [stdout]   ok: PostgreSQL parser and lowering preserve composite table-level foreign keys. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_table_composite_fk.yaml)
[INFO] [stdout]   ok: PostgreSQL exclusion constraints are reported as parse errors. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_table_exclude_parse_error.yaml)
[INFO] [stdout]   ok: PostgreSQL parser lowers generated columns with their expression. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_table_generated_column.yaml)
[INFO] [stdout]   ok: PostgreSQL parser accepts identity columns; lowering records the base column shape. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_table_identity.yaml)
[INFO] [stdout]   ok: PostgreSQL parser lowers a function-backed CREATE TRIGGER onto its table. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_trigger.yaml)
[INFO] [stdout]   ok: PostgreSQL parser and lowering preserve simple views. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_create_view.yaml)
[INFO] [stdout]   ok: PostgreSQL GRANT is rejected because parser input is CREATE-only. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_grant_unsupported.yaml)
[INFO] [stdout]   ok: Parse a simple SQL table and index into schema state. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_sql_to_schema_basic.yaml)
[INFO] [stdout]   ok: Invalid SQL is rejected with a parse error. (/opt/rustwide/workdir/tests/cases/offline/parser/postgres/postgres_sql_to_schema_invalid.yaml)
[INFO] [stdout]   ok: SQLite ALTER TABLE DROP COLUMN is rejected because parser input is CREATE-only. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_alter_table_drop_column.yaml)
[INFO] [stdout]   ok: SQLite ALTER TABLE RENAME is rejected because parser input is CREATE-only. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_alter_table_rename.yaml)
[INFO] [stdout]   ok: SQLite parser lowers expression indexes into table index metadata. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_create_expression_index.yaml)
[INFO] [stdout]   ok: SQLite parser accepts generated columns. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_create_generated_column.yaml)
[INFO] [stdout]   ok: SQLite parser accepts partial indexes. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_create_partial_index.yaml)
[INFO] [stdout]   ok: SQLite parser lowers STRICT table definitions into schema state. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_create_strict_table.yaml)
[INFO] [stdout]   ok: SQLite parser accepts composite primary keys and composite foreign keys. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_create_table_composite_fk.yaml)
[INFO] [stdout]   ok: SQLite parser lowers trigger bodies onto their target table. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_create_trigger.yaml)
[INFO] [stdout]   ok: SQLite parser accepts WITHOUT ROWID tables. (/opt/rustwide/workdir/tests/cases/offline/parser/sqlite/sqlite_create_without_rowid.yaml)
[INFO] [stdout]   ok: Replay canonicalizes foreign key action spelling and omits empty actions. (/opt/rustwide/workdir/tests/cases/offline/replay/fk_actions_normalize.yaml)
[INFO] [stdout]   ok: Legacy inline checks replay as named constraints that later migrations can drop. (/opt/rustwide/workdir/tests/cases/offline/replay/legacy_inline_check_then_drop.yaml)
[INFO] [stdout]   ok: Replay independent branches joined by an explicit merge migration. (/opt/rustwide/workdir/tests/cases/offline/replay/replay_branching_merge.yaml)
[INFO] [stdout]   ok: Replay a three-migration chain into the expected schema. (/opt/rustwide/workdir/tests/cases/offline/replay/replay_chain.yaml)
[INFO] [stdout]   ok: Replay preserves composite primary keys and composite foreign keys. (/opt/rustwide/workdir/tests/cases/offline/replay/replay_composite_keys.yaml)
[INFO] [stdout]   ok: A cycle in migration dependencies is detected and rejected. (/opt/rustwide/workdir/tests/cases/offline/replay/replay_cycle.yaml)
[INFO] [stdout]   ok: Replay rejects duplicate migration ids. (/opt/rustwide/workdir/tests/cases/offline/replay/replay_duplicate_migration_id.yaml)
[INFO] [stdout]   ok: Migration generation rejects invalid generated migration ids. (/opt/rustwide/workdir/tests/cases/offline/replay/replay_invalid_migration_id.yaml)
[INFO] [stdout]   ok: Replay rejects a migration whose dependency is not present. (/opt/rustwide/workdir/tests/cases/offline/replay/replay_missing_dependency.yaml)
[INFO] [stdout]   ok: Raw statements do not mutate replayed schema state. (/opt/rustwide/workdir/tests/cases/offline/replay/replay_statement_is_noop.yaml)
[INFO] [stdout]   ok: Rollback SQL reverses function, trigger, view, and enum operations. (/opt/rustwide/workdir/tests/cases/offline/rollback/function_trigger_view_enum.yaml)
[INFO] [stdout]   ok: Rollback checks an added managed field before reversing its backfill and dropping its column. (/opt/rustwide/workdir/tests/cases/offline/rollback/managed_row_added_field.yaml)
[INFO] [stdout]   ok: Rollback SQL fails before output when a raw statement has no down SQL. (/opt/rustwide/workdir/tests/cases/offline/rollback/non_reversible_statement_error.yaml)
[INFO] [stdout]   ok: Rollback SQL reverses table, column, index, foreign-key, and constraint operations in graph order. (/opt/rustwide/workdir/tests/cases/offline/rollback/reversible_table_column_index_fk_constraint.yaml)
[INFO] [stdout]   ok: Rollback SQL fails clearly when a selected migration id is not in the graph. (/opt/rustwide/workdir/tests/cases/offline/rollback/unknown_selected_id_error.yaml)
[INFO] [stdout]   ok: MariaDB renders complete product-owned column definitions. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/sql/mariadb/mariadb_column_metadata.yaml)
[INFO] [stdout]   ok: MariaDB renders only supported foreign key actions. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/sql/mariadb/mariadb_fk_actions.yaml)
[INFO] [stdout]   ok: MariaDB renders stored generated columns using PERSISTENT. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/sql/mariadb/mariadb_generated_persistent.yaml)
[INFO] [stdout]   ok: MariaDB renders complete table and column mutation operations. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/sql/mariadb/mariadb_table_column_operations.yaml)
[INFO] [stdout]   ok: MySQL renders complete product-owned column definitions. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/sql/mysql/mysql_column_metadata.yaml)
[INFO] [stdout]   ok: MySQL renders only supported foreign key actions. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/sql/mysql/mysql_fk_actions.yaml)
[INFO] [stdout]   ok: MySQL renders complete table and column mutation operations. [skipped: feature not enabled] (/opt/rustwide/workdir/tests/cases/offline/sql/mysql/mysql_table_column_operations.yaml)
[INFO] [stdout]   ok: PostgreSQL renders concurrent index SQL for non-atomic migrations. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/concurrent_index.yaml)
[INFO] [stdout]   ok: PostgreSQL renders ALTER TABLE ADD CONSTRAINT for added foreign keys. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_add_foreign_key.yaml)
[INFO] [stdout]   ok: PostgreSQL renders ordered composite foreign keys with both referential actions. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_composite_fk_actions.yaml)
[INFO] [stdout]   ok: PostgreSQL renders composite primary keys and composite foreign keys in CREATE TABLE. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_composite_pk_fk_create_table.yaml)
[INFO] [stdout]   ok: PostgreSQL renders explicit drop operations for opaque schema objects. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_drop_opaque_objects.yaml)
[INFO] [stdout]   ok: PostgreSQL renders enum value insertion with BEFORE when order requires it. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_enum_insert_before.yaml)
[INFO] [stdout]   ok: PostgreSQL renders uncommon foreign key delete and update actions. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_fk_set_actions.yaml)
[INFO] [stdout]   ok: Legacy inline column checks render as canonical named PostgreSQL constraints. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_legacy_inline_check.yaml)
[INFO] [stdout]   ok: Legacy inline references render as canonical named PostgreSQL foreign keys. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_legacy_inline_reference.yaml)
[INFO] [stdout]   ok: Render SQL for a simple migration chain. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_migration_to_sql_basic.yaml)
[INFO] [stdout]   ok: Render SQL for richer PostgreSQL-only features. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_migration_to_sql_features.yaml)
[INFO] [stdout]   ok: Render raw SQL statements exactly as authored. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_migration_to_sql_raw_statement.yaml)
[INFO] [stdout]   ok: Render pgcrypto independently from native UUID columns. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_pgcrypto_uuid.yaml)
[INFO] [stdout]   ok: PostgreSQL wraps a row-level query trigger and appends RETURN NEW. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_query_trigger_row.yaml)
[INFO] [stdout]   ok: PostgreSQL escapes uncommon enum labels without changing their order. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_quoted_enum_labels.yaml)
[INFO] [stdout]   ok: PostgreSQL renders reserved mixed-case and spaced identifiers safely. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_quoted_identifiers.yaml)
[INFO] [stdout]   ok: PostgreSQL renders schema-qualified CREATE TABLE targets. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_schema_qualified_create_table.yaml)
[INFO] [stdout]   ok: PostgreSQL schema-qualifies DROP INDEX for indexes attached to schema-qualified tables. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_schema_qualified_drop_index.yaml)
[INFO] [stdout]   ok: PostgreSQL renders schema-qualified functions and trigger function references. (/opt/rustwide/workdir/tests/cases/offline/sql/postgres/postgres_schema_qualified_function_trigger.yaml)
[INFO] [stdout]   ok: SQLite renders partial index SQL. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/partial_index.yaml)
[INFO] [stdout]   ok: SQLite renders simple nullable column additions with native ALTER TABLE. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_add_nullable_column.yaml)
[INFO] [stdout]   ok: SQLite renders composite primary keys and foreign keys during CREATE TABLE. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_create_table_composite_pk_fk.yaml)
[INFO] [stdout]   ok: SQLite renders uncommon foreign key delete and update actions. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_fk_set_actions.yaml)
[INFO] [stdout]   ok: SQLite rejects PostgreSQL-style function-name triggers. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_function_trigger_unsupported.yaml)
[INFO] [stdout]   ok: SQLite renders raw SQL statements exactly as authored. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_raw_statement.yaml)
[INFO] [stdout]   ok: SQLite rebuild uses explicit cast expressions for type changes. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_rebuild_alter_type_cast.yaml)
[INFO] [stdout]   ok: SQLite rebuild adds unique, check, and foreign-key constraints in one table rebuild. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_rebuild_constraints_and_fk.yaml)
[INFO] [stdout]   ok: SQLite rebuild preserves existing values when only a column default changes. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_rebuild_default_only.yaml)
[INFO] [stdout]   ok: Render SQLite drop-column SQL through deterministic table rebuild planning. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_rebuild_drop_column.yaml)
[INFO] [stdout]   ok: SQLite rebuild drops unique, check, and foreign-key constraints from the target table. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_rebuild_drop_constraints_and_fk.yaml)
[INFO] [stdout]   ok: SQLite rebuild omits generated columns from copied insert columns. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_rebuild_generated_column.yaml)
[INFO] [stdout]   ok: SQLite rebuild uses COALESCE when tightening nullability with a default. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_rebuild_not_null_default.yaml)
[INFO] [stdout]   ok: SQLite rebuild recreates target indexes after renaming the rebuilt table. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_rebuild_recreates_indexes.yaml)
[INFO] [stdout]   ok: SQLite rejects schema-qualified tables before rendering SQL. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_schema_qualified_table_unsupported.yaml)
[INFO] [stdout]   ok: SQLite rejects enum operations instead of emitting no-op SQL. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_unsupported_enum_unsupported.yaml)
[INFO] [stdout]   ok: SQLite migration SQL fails clearly for PostgreSQL extension operations. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_unsupported_extension.yaml)
[INFO] [stdout]   ok: SQLite rejects stored function operations instead of emitting no-op SQL. (/opt/rustwide/workdir/tests/cases/offline/sql/sqlite/sqlite_unsupported_function_unsupported.yaml)
[INFO] [stdout]   ok: Schema preparation rejects duplicate columns before SQL rendering. (/opt/rustwide/workdir/tests/cases/offline/validation/duplicate_column_error.yaml)
[INFO] [stdout]   ok: Schema preparation rejects two unnamed indexes that derive the same name. (/opt/rustwide/workdir/tests/cases/offline/validation/generated_name_collision_error.yaml)
[INFO] [stdout]   ok: Postgres type aliases canonicalize before diffing. (/opt/rustwide/workdir/tests/cases/offline/validation/postgres_type_alias_noop.yaml)
[INFO] [stdout]   ok: SQLite preserves declared types while diffing equivalent affinities. (/opt/rustwide/workdir/tests/cases/offline/validation/sqlite_type_alias_noop.yaml)
[INFO] [stdout]   ok: Schema preparation rejects foreign keys that reference unknown tables. (/opt/rustwide/workdir/tests/cases/offline/validation/unknown_fk_target_error.yaml)
[INFO] [stdout]   ok: Schema preparation rejects indexes that reference unknown columns. (/opt/rustwide/workdir/tests/cases/offline/validation/unknown_index_column_error.yaml)
[INFO] [stdout]   ok: A KeepType decision preserves an approved custom type in generated migrations. (/opt/rustwide/workdir/tests/cases/offline/validation/unknown_type_keep_type_decision.yaml)
[INFO] [stdout]   ok: A newly introduced unknown type asks before migration generation. (/opt/rustwide/workdir/tests/cases/offline/validation/unknown_type_needs_decision.yaml)
[INFO] [stdout]   ok: A UseType decision rewrites a mistyped column type before diffing. (/opt/rustwide/workdir/tests/cases/offline/validation/unknown_type_use_type_decision.yaml)
[INFO] [stdout]   ok: Semantic drift ignores source changes when an owned opaque index remains present. (/opt/rustwide/workdir/tests/cases/offline/verify/opaque_definition_ignored.yaml)
[INFO] [stdout]   ok: PostgreSQL inspected literal cast default semantically matches replayed schema (/opt/rustwide/workdir/tests/cases/offline/verify/postgres_default_cast_no_drift.yaml)
[INFO] [stdout]   ok: PostgreSQL semantic defaults equate catalog casts booleans signed numerics and escaped text. (/opt/rustwide/workdir/tests/cases/offline/verify/postgres_default_forms_no_drift.yaml)
[INFO] [stdout]   ok: PostgreSQL semantic drift reports the expected and observed on_update actions. (/opt/rustwide/workdir/tests/cases/offline/verify/postgres_fk_on_update_drift.yaml)
[INFO] [stdout]   ok: SQLite semantic drift reports the expected and observed on_update actions. (/opt/rustwide/workdir/tests/cases/offline/verify/sqlite_fk_on_update_drift.yaml)
[INFO] [stdout]   ok: SQLite semantic drift accepts identical stable literal defaults. (/opt/rustwide/workdir/tests/cases/offline/verify/sqlite_literal_defaults_no_drift.yaml)
[INFO] [stderr]      Running tests/offline_coverage.rs (/opt/rustwide/target/debug/build/gaman/f272b93d41de4af6/out/offline_coverage-f272b93d41de4af6)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test offline_evidence_matrix_is_complete_and_current ... ok
[INFO] [stdout] test support_matrix_is_complete_and_readme_is_current ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.90s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/online.rs (/opt/rustwide/target/debug/build/gaman/80228248068d78e7/out/online-80228248068d78e7)
[INFO] [stdout]   skip: alter column type with an explicit cast preserves converted values [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: alter column type with an explicit cast preserves converted values [sqlite]
[INFO] [stdout]   skip: alter column type with an explicit cast preserves converted values [mysql: dialect section missing]
[INFO] [stdout]   skip: alter column type with an explicit cast preserves converted values [mariadb: dialect section missing]
[INFO] [stdout]   skip: migrate a simple users table and inspect the resulting schema [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: migrate a simple users table and inspect the resulting schema [sqlite]
[INFO] [stdout]   skip: migrate a simple users table and inspect the resulting schema [mysql: dialect section missing]
[INFO] [stdout]   skip: migrate a simple users table and inspect the resulting schema [mariadb: dialect section missing]
[INFO] [stdout]   skip: migrate and inspect composite primary and foreign keys [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: migrate and inspect composite primary and foreign keys [sqlite]
[INFO] [stdout]   skip: migrate and inspect composite primary and foreign keys [mysql: dialect section missing]
[INFO] [stdout]   skip: migrate and inspect composite primary and foreign keys [mariadb: dialect section missing]
[INFO] [stdout]   skip: default and nullability changes apply and preserve existing rows [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: default and nullability changes apply and preserve existing rows [sqlite]
[INFO] [stdout]   skip: default and nullability changes apply and preserve existing rows [mysql: dialect section missing]
[INFO] [stdout]   skip: default and nullability changes apply and preserve existing rows [mariadb: dialect section missing]
[INFO] [stdout]   skip: add non-null columns with defaults in live migrations [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: add non-null columns with defaults in live migrations [sqlite]
[INFO] [stdout]   skip: add non-null columns with defaults in live migrations [mysql: dialect section missing]
[INFO] [stdout]   skip: add non-null columns with defaults in live migrations [mariadb: dialect section missing]
[INFO] [stdout]   skip: dropping a column preserves remaining rows and inspected schema [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: dropping a column preserves remaining rows and inspected schema [sqlite]
[INFO] [stdout]   skip: dropping a column preserves remaining rows and inspected schema [mysql: dialect section missing]
[INFO] [stdout]   skip: dropping a column preserves remaining rows and inspected schema [mariadb: dialect section missing]
[INFO] [stdout]   skip: dropped indexes and constraints stop enforcing their old rules [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: dropped indexes and constraints stop enforcing their old rules [sqlite]
[INFO] [stdout]   skip: dropped indexes and constraints stop enforcing their old rules [mysql: dialect section missing]
[INFO] [stdout]   skip: dropped indexes and constraints stop enforcing their old rules [mariadb: dialect section missing]
[INFO] [stdout]   skip: empty migrations apply without changing inspected schema [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: empty migrations apply without changing inspected schema [sqlite]
[INFO] [stdout]   skip: empty migrations apply without changing inspected schema [mysql: dialect section missing]
[INFO] [stdout]   skip: empty migrations apply without changing inspected schema [mariadb: dialect section missing]
[INFO] [stdout]   skip: cyclic foreign keys can be added after table creation [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: cyclic foreign keys can be added after table creation [sqlite: dialect section missing]
[INFO] [stdout]   skip: cyclic foreign keys can be added after table creation [mysql: dialect section missing]
[INFO] [stdout]   skip: cyclic foreign keys can be added after table creation [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL and SQLite enforce ON DELETE SET DEFAULT with a valid parent default. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: PostgreSQL and SQLite enforce ON DELETE SET DEFAULT with a valid parent default. [sqlite]
[INFO] [stdout]   skip: PostgreSQL and SQLite enforce ON DELETE SET DEFAULT with a valid parent default. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL and SQLite enforce ON DELETE SET DEFAULT with a valid parent default. [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL and SQLite enforce ON DELETE SET NULL. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: PostgreSQL and SQLite enforce ON DELETE SET NULL. [sqlite]
[INFO] [stdout]   skip: PostgreSQL and SQLite enforce ON DELETE SET NULL. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL and SQLite enforce ON DELETE SET NULL. [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL and SQLite inspect and enforce ON UPDATE CASCADE. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: PostgreSQL and SQLite inspect and enforce ON UPDATE CASCADE. [sqlite]
[INFO] [stdout]   skip: PostgreSQL and SQLite inspect and enforce ON UPDATE CASCADE. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL and SQLite inspect and enforce ON UPDATE CASCADE. [mariadb: dialect section missing]
[INFO] [stdout]   skip: generated columns compute values during live migration [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: generated columns compute values during live migration [sqlite]
[INFO] [stdout]   skip: generated columns compute values during live migration [mysql: dialect section missing]
[INFO] [stdout]   skip: generated columns compute values during live migration [mariadb: dialect section missing]
[INFO] [stdout]   skip: indexes unique constraints and check constraints enforce live data rules [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: indexes unique constraints and check constraints enforce live data rules [sqlite]
[INFO] [stdout]   skip: indexes unique constraints and check constraints enforce live data rules [mysql: dialect section missing]
[INFO] [stdout]   skip: indexes unique constraints and check constraints enforce live data rules [mariadb: dialect section missing]
[INFO] [stdout]   skip: Legacy inline checks are created with canonical names and enforce data rules. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: Legacy inline checks are created with canonical names and enforce data rules. [sqlite]
[INFO] [stdout]   skip: Legacy inline checks are created with canonical names and enforce data rules. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: Legacy inline checks are created with canonical names and enforce data rules. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: A later migration drops a canonical constraint created from legacy inline shorthand. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: A later migration drops a canonical constraint created from legacy inline shorthand. [sqlite]
[INFO] [stdout]   skip: A later migration drops a canonical constraint created from legacy inline shorthand. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: A later migration drops a canonical constraint created from legacy inline shorthand. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: atomic migration failure rolls back SQL and does not record the failed migration [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: atomic migration failure rolls back SQL and does not record the failed migration [sqlite]
[INFO] [stdout]   skip: atomic migration failure rolls back SQL and does not record the failed migration [mysql: dialect section missing]
[INFO] [stdout]   skip: atomic migration failure rolls back SQL and does not record the failed migration [mariadb: dialect section missing]
[INFO] [stdout]   skip: non-atomic migration failure preserves earlier statements but does not record the failed migration [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: non-atomic migration failure preserves earlier statements but does not record the failed migration [sqlite]
[INFO] [stdout]   skip: non-atomic migration failure preserves earlier statements but does not record the failed migration [mysql: dialect section missing]
[INFO] [stdout]   skip: non-atomic migration failure preserves earlier statements but does not record the failed migration [mariadb: dialect section missing]
[INFO] [stdout]   skip: Target migration rejects an unresolved graph with multiple heads. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: Target migration rejects an unresolved graph with multiple heads. [sqlite]
[INFO] [stdout]   skip: Target migration rejects an unresolved graph with multiple heads. [mysql: dialect section missing]
[INFO] [stdout]   skip: Target migration rejects an unresolved graph with multiple heads. [mariadb: dialect section missing]
[INFO] [stdout]   skip: repeated migrate is idempotent and records applied migrations [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: repeated migrate is idempotent and records applied migrations [sqlite]
[INFO] [stdout]   skip: repeated migrate is idempotent and records applied migrations [mysql: dialect section missing]
[INFO] [stdout]   skip: repeated migrate is idempotent and records applied migrations [mariadb: dialect section missing]
[INFO] [stdout]   skip: Metadata-only table option acknowledgements apply idempotently without SQL. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: Metadata-only table option acknowledgements apply idempotently without SQL. [sqlite]
[INFO] [stdout]   skip: Metadata-only table option acknowledgements apply idempotently without SQL. [mysql: dialect section missing]
[INFO] [stdout]   skip: Metadata-only table option acknowledgements apply idempotently without SQL. [mariadb: dialect section missing]
[INFO] [stdout]   skip: migrate target rollback removes later migration effects and records [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: migrate target rollback removes later migration effects and records [sqlite]
[INFO] [stdout]   skip: migrate target rollback removes later migration effects and records [mysql: dialect section missing]
[INFO] [stdout]   skip: migrate target rollback removes later migration effects and records [mariadb: dialect section missing]
[INFO] [stdout]   skip: target migrate applies only migrations through the requested target [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: target migrate applies only migrations through the requested target [sqlite]
[INFO] [stdout]   skip: target migrate applies only migrations through the requested target [mysql: dialect section missing]
[INFO] [stdout]   skip: target migrate applies only migrations through the requested target [mariadb: dialect section missing]
[INFO] [stdout]   skip: linear migration chains apply in dependency order [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: linear migration chains apply in dependency order [sqlite]
[INFO] [stdout]   skip: linear migration chains apply in dependency order [mysql: dialect section missing]
[INFO] [stdout]   skip: linear migration chains apply in dependency order [mariadb: dialect section missing]
[INFO] [stdout]   skip: verified fake application adopts matching existing managed rows and records the migration [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verified fake application adopts matching existing managed rows and records the migration [sqlite]
[INFO] [stdout]   skip: verified fake application adopts matching existing managed rows and records the migration [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: verified fake application adopts matching existing managed rows and records the migration [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: verified fake application refuses mismatching managed rows without recording the migration [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verified fake application refuses mismatching managed rows without recording the migration [sqlite]
[INFO] [stdout]   skip: verified fake application refuses mismatching managed rows without recording the migration [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: verified fake application refuses mismatching managed rows without recording the migration [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: managed rows coexist with never-managed rows and unmanaged columns through apply and rollback [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: managed rows coexist with never-managed rows and unmanaged columns through apply and rollback [sqlite]
[INFO] [stdout]   skip: managed rows coexist with never-managed rows and unmanaged columns through apply and rollback [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: managed rows coexist with never-managed rows and unmanaged columns through apply and rollback [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: managed-row repair restores owned values without touching unmanaged rows or columns [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: managed-row repair restores owned values without touching unmanaged rows or columns [sqlite]
[INFO] [stdout]   skip: managed-row repair restores owned values without touching unmanaged rows or columns [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: managed-row repair restores owned values without touching unmanaged rows or columns [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL advanced index forms remain opaque and never block live verification. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL advanced index forms remain opaque and never block live verification. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL advanced index forms remain opaque and never block live verification. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL advanced index forms remain opaque and never block live verification. [mariadb: dialect section missing]
[INFO] [stdout]   skip: MySQL verify reports an observed column default that differs from migration history. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL verify reports an observed column default that differs from migration history. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL verify reports an observed column default that differs from migration history. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL verify reports an observed column default that differs from migration history. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL repeatedly applies migrations idempotently and preserves tracking records. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL repeatedly applies migrations idempotently and preserves tracking records. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL repeatedly applies migrations idempotently and preserves tracking records. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL repeatedly applies migrations idempotently and preserves tracking records. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL releases its named migration lock after application. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL releases its named migration lock after application. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL releases its named migration lock after application. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL releases its named migration lock after application. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL invisible and MariaDB ignored indexes remain opaque without blocking verification. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL invisible and MariaDB ignored indexes remain opaque without blocking verification. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL invisible and MariaDB ignored indexes remain opaque without blocking verification. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL invisible and MariaDB ignored indexes remain opaque without blocking verification. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL and MariaDB verify product-owned column metadata without false drift. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL and MariaDB verify product-owned column metadata without false drift. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL and MariaDB verify product-owned column metadata without false drift. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL and MariaDB verify product-owned column metadata without false drift. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL and MariaDB inspect explicit row format without false drift. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL and MariaDB inspect explicit row format without false drift. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL and MariaDB inspect explicit row format without false drift. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL and MariaDB inspect explicit row format without false drift. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL opaque views coexist with modeled verification. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL opaque views coexist with modeled verification. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL opaque views coexist with modeled verification. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL opaque views coexist with modeled verification. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL reports non-transactional partial failure without recording the migration. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL reports non-transactional partial failure without recording the migration. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL reports non-transactional partial failure without recording the migration. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL reports non-transactional partial failure without recording the migration. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL renames tables and columns while preserving stored data. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL renames tables and columns while preserving stored data. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL renames tables and columns while preserving stored data. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL renames tables and columns while preserving stored data. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL rollback reverses later migrations and removes their tracking records. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL rollback reverses later migrations and removes their tracking records. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL rollback reverses later migrations and removes their tracking records. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL rollback reverses later migrations and removes their tracking records. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL preserves single-column foreign keys and update-delete actions. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL preserves single-column foreign keys and update-delete actions. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL preserves single-column foreign keys and update-delete actions. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL preserves single-column foreign keys and update-delete actions. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL target application stops at the requested migration. [postgres: dialect section missing]
[INFO] [stdout]   skip: MySQL target application stops at the requested migration. [sqlite: dialect section missing]
[INFO] [stdout]   skip: MySQL target application stops at the requested migration. [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: MySQL target application stops at the requested migration. [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: PostgreSQL inspect rejects advanced opaque indexes from authored YAML export [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL inspect rejects advanced opaque indexes from authored YAML export [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL inspect rejects advanced opaque indexes from authored YAML export [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL inspect rejects advanced opaque indexes from authored YAML export [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL catalog formatting for serial boolean numeric and escaped text defaults does not drift. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL catalog formatting for serial boolean numeric and escaped text defaults does not drift. [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL catalog formatting for serial boolean numeric and escaped text defaults does not drift. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL catalog formatting for serial boolean numeric and escaped text defaults does not drift. [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL enum append preserves ordered labels during inspect [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL enum append preserves ordered labels during inspect [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL enum append preserves ordered labels during inspect [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL enum append preserves ordered labels during inspect [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL inspect rejects opaque expression indexes from authored YAML export [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL inspect rejects opaque expression indexes from authored YAML export [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL inspect rejects opaque expression indexes from authored YAML export [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL inspect rejects opaque expression indexes from authored YAML export [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL inspect reflects foreign key on_delete action [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL inspect reflects foreign key on_delete action [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL inspect reflects foreign key on_delete action [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL inspect reflects foreign key on_delete action [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL function-name triggers execute and inspect stable wiring [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL function-name triggers execute and inspect stable wiring [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL function-name triggers execute and inspect stable wiring [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL function-name triggers execute and inspect stable wiring [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL releases the advisory migration lock after a failed migration [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL releases the advisory migration lock after a failed migration [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL releases the advisory migration lock after a failed migration [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL releases the advisory migration lock after a failed migration [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL modeled column drift remains visible beside an owned opaque index. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL modeled column drift remains visible beside an owned opaque index. [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL modeled column drift remains visible beside an owned opaque index. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL modeled column drift remains visible beside an owned opaque index. [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL migrates and inspects enums functions views and query triggers [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL migrates and inspects enums functions views and query triggers [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL migrates and inspects enums functions views and query triggers [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL migrates and inspects enums functions views and query triggers [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL applies an opaque sequence before a table default and ignores counter state during verify [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL applies an opaque sequence before a table default and ignores counter state during verify [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL applies an opaque sequence before a table default and ignores counter state during verify [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL applies an opaque sequence before a table default and ignores counter state during verify [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL migrates and inspects partial indexes [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL migrates and inspects partial indexes [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL migrates and inspects partial indexes [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL migrates and inspects partial indexes [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL pgcrypto generates UUID defaults without making UUID an extension type [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL pgcrypto generates UUID defaults without making UUID an extension type [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL pgcrypto generates UUID defaults without making UUID an extension type [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL pgcrypto generates UUID defaults without making UUID an extension type [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL creates routes and verifies monthly range partitions. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL creates routes and verifies monthly range partitions. [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL creates routes and verifies monthly range partitions. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL creates routes and verifies monthly range partitions. [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair recreates a missing owned opaque sequence from verified state [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL repair recreates a missing owned opaque sequence from verified state [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair recreates a missing owned opaque sequence from verified state [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair recreates a missing owned opaque sequence from verified state [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair converges an untracked crawler frontier change before verified fake application [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL repair converges an untracked crawler frontier change before verified fake application [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair converges an untracked crawler frontier change before verified fake application [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair converges an untracked crawler frontier change before verified fake application [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair applies a text-to-jsonb cast to valid JSON data [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL repair applies a text-to-jsonb cast to valid JSON data [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair applies a text-to-jsonb cast to valid JSON data [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair applies a text-to-jsonb cast to valid JSON data [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair dry-run projects text-to-jsonb drift with an explicit cast [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL repair dry-run projects text-to-jsonb drift with an explicit cast [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair dry-run projects text-to-jsonb drift with an explicit cast [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL repair dry-run projects text-to-jsonb drift with an explicit cast [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL rollback restores a dropped opaque sequence with its declared definition [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL rollback restores a dropped opaque sequence with its declared definition [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL rollback restores a dropped opaque sequence with its declared definition [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL rollback restores a dropped opaque sequence with its declared definition [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports owned enum label order drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify reports owned enum label order drift [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports owned enum label order drift [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports owned enum label order drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports foreign key on_delete drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify reports foreign key on_delete drift [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports foreign key on_delete drift [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports foreign key on_delete drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores body-only function drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify ignores body-only function drift [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores body-only function drift [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores body-only function drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects missing owned function signatures [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify detects missing owned function signatures [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects missing owned function signatures [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects missing owned function signatures [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores unregistered opaque metadata on advanced live indexes [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify ignores unregistered opaque metadata on advanced live indexes [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores unregistered opaque metadata on advanced live indexes [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores unregistered opaque metadata on advanced live indexes [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores a live-only trigger on an owned table [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify ignores a live-only trigger on an owned table [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores a live-only trigger on an owned table [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores a live-only trigger on an owned table [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores live-only enums [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify ignores live-only enums [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores live-only enums [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify ignores live-only enums [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports missing owned enums [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify reports missing owned enums [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports missing owned enums [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports missing owned enums [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports a missing owned trigger [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify reports a missing owned trigger [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports a missing owned trigger [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports a missing owned trigger [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects a missing owned opaque sequence and plans recreation [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify detects a missing owned opaque sequence and plans recreation [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects a missing owned opaque sequence and plans recreation [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects a missing owned opaque sequence and plans recreation [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify treats changed owned opaque index definitions as present. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify treats changed owned opaque index definitions as present. [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify treats changed owned opaque index definitions as present. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify treats changed owned opaque index definitions as present. [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects a missing owned opaque expression index. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify detects a missing owned opaque expression index. [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects a missing owned opaque expression index. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify detects a missing owned opaque expression index. [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify accepts explicitly schema-qualified owned objects [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify accepts explicitly schema-qualified owned objects [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify accepts explicitly schema-qualified owned objects [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify accepts explicitly schema-qualified owned objects [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports owned trigger wiring drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL verify reports owned trigger wiring drift [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports owned trigger wiring drift [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL verify reports owned trigger wiring drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL view replacement updates the inspected view definition [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: PostgreSQL view replacement updates the inspected view definition [sqlite: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL view replacement updates the inspected view definition [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL view replacement updates the inspected view definition [mariadb: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL and SQLite preserve reserved mixed-case and spaced identifiers. [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: PostgreSQL and SQLite preserve reserved mixed-case and spaced identifiers. [sqlite]
[INFO] [stdout]   skip: PostgreSQL and SQLite preserve reserved mixed-case and spaced identifiers. [mysql: dialect section missing]
[INFO] [stdout]   skip: PostgreSQL and SQLite preserve reserved mixed-case and spaced identifiers. [mariadb: dialect section missing]
[INFO] [stdout]   skip: raw SQL statements run during live migration and can seed deterministic data [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: raw SQL statements run during live migration and can seed deterministic data [sqlite]
[INFO] [stdout]   skip: raw SQL statements run during live migration and can seed deterministic data [mysql: dialect section missing]
[INFO] [stdout]   skip: raw SQL statements run during live migration and can seed deterministic data [mariadb: dialect section missing]
[INFO] [stdout]   skip: live migrations rename tables and columns while preserving data [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: live migrations rename tables and columns while preserving data [sqlite]
[INFO] [stdout]   skip: live migrations rename tables and columns while preserving data [mysql: dialect section missing]
[INFO] [stdout]   skip: live migrations rename tables and columns while preserving data [mariadb: dialect section missing]
[INFO] [stdout]   skip: self-referencing foreign keys are enforced [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: self-referencing foreign keys are enforced [sqlite]
[INFO] [stdout]   skip: self-referencing foreign keys are enforced [mysql: dialect section missing]
[INFO] [stdout]   skip: self-referencing foreign keys are enforced [mariadb: dialect section missing]
[INFO] [stdout]   skip: single-column foreign keys are enforced by live databases [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: single-column foreign keys are enforced by live databases [sqlite]
[INFO] [stdout]   skip: single-column foreign keys are enforced by live databases [mysql: dialect section missing]
[INFO] [stdout]   skip: single-column foreign keys are enforced by live databases [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite inspect and verify preserve foreign key on_delete action [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite inspect and verify preserve foreign key on_delete action [sqlite]
[INFO] [stdout]   skip: SQLite inspect and verify preserve foreign key on_delete action [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite inspect and verify preserve foreign key on_delete action [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite generated columns survive live migration and compute from preserved data [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite generated columns survive live migration and compute from preserved data [sqlite]
[INFO] [stdout]   skip: SQLite generated columns survive live migration and compute from preserved data [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite generated columns survive live migration and compute from preserved data [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite migrates indexes views and query triggers [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite migrates indexes views and query triggers [sqlite]
[INFO] [stdout]   skip: SQLite migrates indexes views and query triggers [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite migrates indexes views and query triggers [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild alter type with cast preserves converted values [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite rebuild alter type with cast preserves converted values [sqlite]
[INFO] [stdout]   skip: SQLite rebuild alter type with cast preserves converted values [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild alter type with cast preserves converted values [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild migrations fail clearly when atomic is false [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite rebuild migrations fail clearly when atomic is false [sqlite]
[INFO] [stdout]   skip: SQLite rebuild migrations fail clearly when atomic is false [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild migrations fail clearly when atomic is false [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild preserves composite keys actions constraints generated data and partial indexes together. [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite rebuild preserves composite keys actions constraints generated data and partial indexes together. [sqlite]
[INFO] [stdout]   skip: SQLite rebuild preserves composite keys actions constraints generated data and partial indexes together. [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild preserves composite keys actions constraints generated data and partial indexes together. [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild adds unique and check constraints that reject invalid data [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite rebuild adds unique and check constraints that reject invalid data [sqlite]
[INFO] [stdout]   skip: SQLite rebuild adds unique and check constraints that reject invalid data [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild adds unique and check constraints that reject invalid data [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild changes default and nullability while preserving rows [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite rebuild changes default and nullability while preserving rows [sqlite]
[INFO] [stdout]   skip: SQLite rebuild changes default and nullability while preserving rows [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild changes default and nullability while preserving rows [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild drops a column while preserving data and remaining schema [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite rebuild drops a column while preserving data and remaining schema [sqlite]
[INFO] [stdout]   skip: SQLite rebuild drops a column while preserving data and remaining schema [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild drops a column while preserving data and remaining schema [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild drops foreign key unique and check constraints [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite rebuild drops foreign key unique and check constraints [sqlite]
[INFO] [stdout]   skip: SQLite rebuild drops foreign key unique and check constraints [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild drops foreign key unique and check constraints [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild fails clearly when a referenced parent table has inbound foreign keys [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite rebuild fails clearly when a referenced parent table has inbound foreign keys [sqlite]
[INFO] [stdout]   skip: SQLite rebuild fails clearly when a referenced parent table has inbound foreign keys [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite rebuild fails clearly when a referenced parent table has inbound foreign keys [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for enum migrations [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite fails clearly for enum migrations [sqlite]
[INFO] [stdout]   skip: SQLite fails clearly for enum migrations [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for enum migrations [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for extension migrations [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite fails clearly for extension migrations [sqlite]
[INFO] [stdout]   skip: SQLite fails clearly for extension migrations [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for extension migrations [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for stored function migrations [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite fails clearly for stored function migrations [sqlite]
[INFO] [stdout]   skip: SQLite fails clearly for stored function migrations [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for stored function migrations [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for function-name trigger migrations [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite fails clearly for function-name trigger migrations [sqlite]
[INFO] [stdout]   skip: SQLite fails clearly for function-name trigger migrations [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for function-name trigger migrations [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for schema-qualified tables [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite fails clearly for schema-qualified tables [sqlite]
[INFO] [stdout]   skip: SQLite fails clearly for schema-qualified tables [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite fails clearly for schema-qualified tables [mariadb: dialect section missing]
[INFO] [stdout]   skip: SQLite verify reports owned trigger timing drift [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite verify reports owned trigger timing drift [sqlite]
[INFO] [stdout]   skip: SQLite verify reports owned trigger timing drift [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite verify reports owned trigger timing drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports composite foreign key column order drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify reports composite foreign key column order drift [sqlite]
[INFO] [stdout]   skip: verify reports composite foreign key column order drift [mysql: dialect section missing]
[INFO] [stdout]   skip: verify reports composite foreign key column order drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports missing owned composite primary keys as manual drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify reports missing owned composite primary keys as manual drift [sqlite]
[INFO] [stdout]   skip: verify reports missing owned composite primary keys as manual drift [mysql: dialect section missing]
[INFO] [stdout]   skip: verify reports missing owned composite primary keys as manual drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports composite primary key order drift as manual drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify reports composite primary key order drift as manual drift [sqlite]
[INFO] [stdout]   skip: verify reports composite primary key order drift as manual drift [mysql: dialect section missing]
[INFO] [stdout]   skip: verify reports composite primary key order drift as manual drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports changed metadata for owned columns [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: verify reports changed metadata for owned columns [sqlite: dialect section missing]
[INFO] [stdout]   skip: verify reports changed metadata for owned columns [mysql: dialect section missing]
[INFO] [stdout]   skip: verify reports changed metadata for owned columns [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports missing owned indexes constraints and foreign keys [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   skip: verify reports missing owned indexes constraints and foreign keys [sqlite: dialect section missing]
[INFO] [stdout]   skip: verify reports missing owned indexes constraints and foreign keys [mysql: dialect section missing]
[INFO] [stdout]   skip: verify reports missing owned indexes constraints and foreign keys [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports owned generated column expression drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify reports owned generated column expression drift [sqlite]
[INFO] [stdout]   skip: verify reports owned generated column expression drift [mysql: dialect section missing]
[INFO] [stdout]   skip: verify reports owned generated column expression drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify ignores a live-only column on an owned table [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify ignores a live-only column on an owned table [sqlite]
[INFO] [stdout]   skip: verify ignores a live-only column on an owned table [mysql: dialect section missing]
[INFO] [stdout]   skip: verify ignores a live-only column on an owned table [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify ignores live-only indexes constraints and foreign keys on owned tables [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify ignores live-only indexes constraints and foreign keys on owned tables [sqlite]
[INFO] [stdout]   skip: verify ignores live-only indexes constraints and foreign keys on owned tables [mysql: dialect section missing]
[INFO] [stdout]   skip: verify ignores live-only indexes constraints and foreign keys on owned tables [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify ignores a live-only table outside migration ownership [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify ignores a live-only table outside migration ownership [sqlite]
[INFO] [stdout]   skip: verify ignores a live-only table outside migration ownership [mysql: dialect section missing]
[INFO] [stdout]   skip: verify ignores a live-only table outside migration ownership [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify ignores live-only views [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify ignores live-only views [sqlite]
[INFO] [stdout]   skip: verify ignores live-only views [mysql: dialect section missing]
[INFO] [stdout]   skip: verify ignores live-only views [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports a missing owned column [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify reports a missing owned column [sqlite]
[INFO] [stdout]   skip: verify reports a missing owned column [mysql: dialect section missing]
[INFO] [stdout]   skip: verify reports a missing owned column [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports no drift for a representative owned schema [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify reports no drift for a representative owned schema [sqlite]
[INFO] [stdout]   skip: verify reports no drift for a representative owned schema [mysql: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: verify reports no drift for a representative owned schema [mariadb: matching MySQL-family feature is not enabled]
[INFO] [stdout]   skip: SQLite verify reports missing owned indexes constraints and foreign keys [postgres: dialect section missing]
[INFO] [stdout]   ok: SQLite verify reports missing owned indexes constraints and foreign keys [sqlite]
[INFO] [stdout]   skip: SQLite verify reports missing owned indexes constraints and foreign keys [mysql: dialect section missing]
[INFO] [stdout]   skip: SQLite verify reports missing owned indexes constraints and foreign keys [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify ignores body-only view definition drift [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify ignores body-only view definition drift [sqlite]
[INFO] [stdout]   skip: verify ignores body-only view definition drift [mysql: dialect section missing]
[INFO] [stdout]   skip: verify ignores body-only view definition drift [mariadb: dialect section missing]
[INFO] [stdout]   skip: verify reports missing owned views [postgres: POSTGRES_DATABASE_URL is not set]
[INFO] [stdout]   ok: verify reports missing owned views [sqlite]
[INFO] [stdout]   skip: verify reports missing owned views [mysql: dialect section missing]
[INFO] [stdout]   skip: verify reports missing owned views [mariadb: dialect section missing]
[INFO] [stderr] I/O error at 'results/online-support-results.yaml': Read-only file system (os error 30)
[INFO] [stderr] error: test failed, to rerun pass `--test online`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/build/gaman/80228248068d78e7/out/online-80228248068d78e7` (exit status: 1)
[INFO] running `Command { std: "docker" "inspect" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714", kill_on_drop: false }`
[INFO] [stdout] 6a1ae252b81cbb8db6188f312d06372901b738779761fc7937c9d8259c2e0714
