[INFO] fetching crate vlorql-llm 0.5.0...
[INFO] testing vlorql-llm-0.5.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate vlorql-llm 0.5.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate vlorql-llm 0.5.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate vlorql-llm 0.5.0
[INFO] tweaked toml for crates.io crate vlorql-llm 0.5.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate vlorql-llm 0.5.0 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 crates.io crate vlorql-llm 0.5.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.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:96:12
[INFO] [stderr]     |
[INFO] [stderr]  96 | homepage = "https://github.com/VincentZhangy/VlorQl"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 | repository = "https://github.com/VincentZhangy/VlorQl"
[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: `vlorql-llm` (manifest) generated 1 warning
[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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0
[INFO] running `Command { std: "docker" "start" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0", 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" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0" "/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" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0", 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" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:96:12
[INFO] [stderr]     |
[INFO] [stderr]  96 | homepage = "https://github.com/VincentZhangy/VlorQl"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 | repository = "https://github.com/VincentZhangy/VlorQl"
[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: `vlorql-llm` (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.33
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling futures-io v0.3.33
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling futures-sink v0.3.33
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling futures-channel v0.3.33
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling futures-task v0.3.33
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling value-bag v1.13.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling zerocopy v0.8.55
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling cc v1.3.0
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling http-body-util v0.1.4
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling async-trait v0.1.91
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling tokio-macros v2.7.1
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-util v0.3.33
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling piper v0.2.5
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[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 aho-corasick v1.1.4
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling rand v0.8.7
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling async-signal v0.2.14
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling async-executor v1.14.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling async-global-executor v2.4.1
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling async-process v2.5.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling darling_core v0.14.4
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling futures-executor v0.3.33
[INFO] [stderr]    Compiling opentelemetry v0.28.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling kv-log-macro v1.0.7
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling pin-project v1.1.13
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling async-std v1.13.2
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling darling_macro v0.14.4
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling glob v0.3.4
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling opentelemetry_sdk v0.28.0
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling uuid v1.24.0
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling darling v0.14.4
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling num-bigint v0.4.8
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling portable-atomic v1.14.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling derive_builder_core v0.12.0
[INFO] [stderr]    Compiling tonic v0.12.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling num-iter v0.1.46
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling borrow-or-share v0.2.4
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling fluent-uri v0.3.2
[INFO] [stderr]    Compiling opentelemetry-proto v0.28.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling derive_builder_macro v0.12.0
[INFO] [stderr]    Compiling opentelemetry-http v0.28.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling crossbeam-channel v0.5.16
[INFO] [stderr]    Compiling tagptr v0.2.0
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling outref v0.5.2
[INFO] [stderr]    Compiling vsimd v0.8.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling uuid-simd v0.8.0
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling moka v0.12.15
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling opentelemetry-otlp v0.28.0
[INFO] [stderr]    Compiling tracing-opentelemetry v0.29.0
[INFO] [stderr]    Compiling derive_builder v0.12.0
[INFO] [stderr]    Compiling referencing v0.28.3
[INFO] [stderr]    Compiling fraction v0.15.4
[INFO] [stderr]    Compiling fancy-regex v0.14.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling num-cmp v0.1.0
[INFO] [stderr]    Compiling xxhash-rust v0.8.18
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling jsonschema v0.28.3
[INFO] [stderr]    Compiling futures v0.3.33
[INFO] [stderr]    Compiling vlorql-core v0.5.0
[INFO] [stderr]    Compiling vlorql-llm v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 7m 24s
[INFO] running `Command { std: "docker" "inspect" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0", 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" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:96:12
[INFO] [stderr]     |
[INFO] [stderr]  96 | homepage = "https://github.com/VincentZhangy/VlorQl"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 | repository = "https://github.com/VincentZhangy/VlorQl"
[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: `vlorql-llm` (manifest) generated 1 warning
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling glob v0.3.4
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling rstest_macros v0.18.2
[INFO] [stderr]    Compiling referencing v0.28.3
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling fragile v2.1.0
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling futures-timer v3.0.4
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling mockall v0.12.1
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling opentelemetry_sdk v0.28.0
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling rstest v0.18.2
[INFO] [stderr]    Compiling tracing-opentelemetry v0.29.0
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling mockito v1.7.2
[INFO] [stderr]    Compiling tonic v0.12.3
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling opentelemetry-http v0.28.0
[INFO] [stderr]    Compiling jsonschema v0.28.3
[INFO] [stderr]    Compiling opentelemetry-proto v0.28.0
[INFO] [stderr]    Compiling opentelemetry-otlp v0.28.0
[INFO] [stderr]    Compiling vlorql-core v0.5.0
[INFO] [stderr]    Compiling vlorql-llm v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 5m 21s
[INFO] running `Command { std: "docker" "inspect" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0", 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" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:96:12
[INFO] [stderr]     |
[INFO] [stderr]  96 | homepage = "https://github.com/VincentZhangy/VlorQl"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 | repository = "https://github.com/VincentZhangy/VlorQl"
[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: `vlorql-llm` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.64s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/vlorql-llm/30353414666073f9/out/vlorql_llm-30353414666073f9)
[INFO] [stdout] 
[INFO] [stdout] running 434 tests
[INFO] [stdout] test anthropic::tests::anthropic_client_requires_api_key ... ok
[INFO] [stdout] test anthropic::tests::anthropic_client_stream_emits_text_chunks ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_converts_error_response ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_build_request_body_overrides_temperature ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_endpoint_uses_default_when_unset ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_rejects_empty_model_name ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_requires_api_key ... ok
[INFO] [stdout] test anthropic::tests::anthropic_client_converts_error_response ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_emits_deprecation_warning_for_legacy_models ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_endpoint_uses_override_when_set ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_returns_error_for_empty_content ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_returns_error_for_missing_content_field ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_converts_invalid_plan_to_llm_parse_error ... ok
[INFO] [stdout] test deepseek::tests::deepseek_parse_completion_payload_extracts_top_level_error ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_stream_emits_delta_chunks ... ok
[INFO] [stdout] test deepseek::tests::deepseek_parse_completion_payload_rejects_non_json_body ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_stream_propagates_http_error ... ok
[INFO] [stdout] test local::tests::local_client_rejects_empty_model ... ok
[INFO] [stdout] test anthropic::tests::anthropic_client_parses_completion_response ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_reads_api_key_from_env ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_parses_query_plan_response ... ok
[INFO] [stdout] test local::tests::local_client_provider_returns_active_backend ... ok
[INFO] [stdout] test local::tests::ollama_client_returns_error_for_empty_content ... ok
[INFO] [stdout] test local::tests::local_client_translates_connection_failure_into_timeout_or_api_error ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_uses_json_object_mode ... ok
[INFO] [stdout] test local::tests::ollama_client_converts_error_response ... ok
[INFO] [stdout] test local::tests::resolve_backend_falls_back_to_provider ... ok
[INFO] [stdout] test local::tests::local_client_endpoint_appends_chat_suffix ... ok
[INFO] [stdout] test local::tests::resolve_backend_prefers_extra_override ... ok
[INFO] [stdout] test local::tests::resolve_backend_rejects_unknown_value ... ok
[INFO] [stdout] test local::tests::resolve_base_url_strips_chat_suffix ... ok
[INFO] [stdout] test local::tests::resolve_base_url_uses_backend_default_when_unset ... ok
[INFO] [stdout] test local::tests::vllm_client_emits_sse_delta_chunks ... ok
[INFO] [stdout] test local::tests::vllm_client_falls_back_to_json_object_on_400 ... ok
[INFO] [stdout] test local::tests::ollama_client_stream_emits_ndjson_chunks ... ok
[INFO] [stdout] test local::tests::ollama_client_uses_json_string_when_schema_disabled ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_and ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_between ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_binary_op ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_column_ref ... ok
[INFO] [stdout] test local::tests::ollama_client_stream_propagates_http_error ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_comparison ... ok
[INFO] [stdout] test local::tests::ollama_client_parses_message_content_field ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_exists ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_function_call ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_infer_type_from_fields ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_column_ref_no_table ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_is_null ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_like ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_in_values ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_literal_from_bare_string ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_literal_from_bare_null ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_literal_from_bare_number ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_not ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_literal_from_object ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::error_on_missing_op ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_star ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::error_on_missing_type ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::error_on_unknown_expression_type ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::error_on_unknown_predicate_type ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::parse_binary_ops ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::parse_comparison_ops ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::build_or ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::parse_data_types ... ok
[INFO] [stdout] test parser_v2::builder::join_builder::tests::build_cross_join_with_on ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::parse_new_data_types ... ok
[INFO] [stdout] test parser_v2::builder::expr_builder::tests::parse_join_types ... ok
[INFO] [stdout] test parser_v2::builder::join_builder::tests::build_inner_join ... ok
[INFO] [stdout] test parser_v2::builder::join_builder::tests::build_cross_join_without_on ... ok
[INFO] [stdout] test parser_v2::builder::join_builder::tests::build_left_join ... ok
[INFO] [stdout] test parser_v2::builder::join_builder::tests::error_on_missing_on_for_non_cross ... ok
[INFO] [stdout] test parser_v2::builder::join_builder::tests::error_on_missing_right_table ... ok
[INFO] [stdout] test parser_v2::builder::join_builder::tests::error_on_unknown_join_type ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_allows_null_where ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_distinct_defaults_false ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_distinct_on_pg ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_distinct_true ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_full ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_minimal ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_minimal_select_from ... ok
[INFO] [stdout] test parser_v2::builder::join_builder::tests::error_on_missing_join_type ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_from_subquery ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_missing_from ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_missing_select ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_union_all ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_recursive_cte ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_union_alias ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_with_cte ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::from_canonical_str_roundtrip ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_unknown_set_operation_fails ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::from_canonical_value_roundtrip ... ok
[INFO] [stdout] test parser_v2::builder::query_builder::tests::build_plan_with_subquery ... ok
[INFO] [stdout] test parser_v2::builder::select_builder::tests::build_column_ref_with_alias ... ok
[INFO] [stdout] test parser_v2::builder::select_builder::tests::build_projections_array ... ok
[INFO] [stdout] test parser_v2::builder::select_builder::tests::build_star_projection ... ok
[INFO] [stdout] test parser_v2::builder::select_builder::tests::build_expr_projection ... ok
[INFO] [stdout] test parser_v2::builder::select_builder::tests::build_star_projection_with_table ... ok
[INFO] [stdout] test parser_v2::builder::select_builder::tests::error_on_unknown_type ... ok
[INFO] [stdout] test parser_v2::builder::select_builder::tests::error_on_missing_column ... ok
[INFO] [stdout] test parser_v2::builder::table_builder::tests::build_from_clause_null_table_and_alias_errors ... ok
[INFO] [stdout] test parser_v2::builder::table_builder::tests::build_from_clause_with_alias ... ok
[INFO] [stdout] test parser_v2::builder::table_builder::tests::build_from_clause_missing_table_falls_back_to_alias ... ok
[INFO] [stdout] test parser_v2::builder::table_builder::tests::build_from_clause_with_table ... ok
[INFO] [stdout] test parser_v2::builder::table_builder::tests::build_from_clause_wrong_type ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::adds_alias_to_from ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::apply_fixes_returns_new_plan ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::fixes_cte_subquery ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::adds_alias_to_join ... ok
[INFO] [stdout] test parser_v2::builder::select_builder::tests::build_column_ref_projection ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::full_fix_pipeline ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::generates_unique_aliases ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::injects_star_for_empty_select ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::keeps_none_limit ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::keeps_valid_select ... ok
[INFO] [stdout] test local::tests::vllm_client_stream_propagates_http_error ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::no_change_for_valid_plan ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::skips_if_alias_already_exists ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::does_not_overwrite_existing_canonical_field ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::removes_limit_zero ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::empty_object_no_change ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::global_aliases_returns_all ... ok
[INFO] [stdout] test parser_v2::fix::fixer::tests::keeps_valid_limit ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::already_canonical_no_change ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_group_to_group_by ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_kind_to_type ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::model_specific_normalize ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_desc_to_descending ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_filter_to_where ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_sort_to_order_by ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_projection_to_select ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_recursively ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::resolve_alias_works ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::ensure_ctes_single_object ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::null_value_no_change ... ok
[INFO] [stdout] test local::tests::ollama_client_uses_format_field_with_schema ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_source_to_from ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::ensure_joins_single_object ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::ensure_select_already_array ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::ensure_select_single_object ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::ensure_null_field ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::full_normalize ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::flatten_array_wrapper_detects ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::remove_empty_arrays_removes_empty ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::remove_nulls_from_group_by ... ok
[INFO] [stdout] test parser_v2::normalize::array::tests::remove_nulls_removes_empty_field ... ok
[INFO] [stdout] test parser_v2::normalize::common::tests::canonical_data_type_number_float_value ... ok
[INFO] [stdout] test parser_v2::normalize::aliases::tests::normalizes_order_to_order_by ... ok
[INFO] [stdout] test parser_v2::normalize::common::tests::canonical_data_type_number_int_value ... ok
[INFO] [stdout] test parser_v2::normalize::common::tests::canonical_data_type_string ... ok
[INFO] [stdout] test parser_v2::normalize::common::tests::resolve_sql_type_alias_works ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::does_not_inject_when_right_exists ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::does_not_simplify_and_with_both_sides ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::expression_no_recognizable_fields ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::full_normalize_tree ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::full_predicate_normalize ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::injects_column_ref_type ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::injects_comparison_type ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::injects_function_call_type ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::injects_literal_type ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::injects_missing_right_on_comparison ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::integer_literal_normalizes_to_int_consistently ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::normalizes_function_call_case_expression ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::expression_already_has_type ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::normalizes_ilike_op_to_like_predicate ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::number_literal_disambiguates_by_value ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::predicate_already_has_type ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::recursive_predicate_normalize ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::simplifies_and_without_right ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::unwraps_and_left_array ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::unwraps_comparison_left_array ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::normalizes_like_op_from_comparison_to_like_predicate ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::extract_plan_level_fields_from_joins ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::full_normalize_joins ... ok
[INFO] [stdout] test parser_v2::normalize::expr::tests::unwraps_not_child_array ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::infer_missing_on_preserves_address_table_case_insensitive ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::infer_missing_on_preserves_series_table ... ok
[INFO] [stdout] test parser_v2::normalize::common::tests::canonical_data_type_already_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::common::tests::canonical_data_type_decimal ... ok
[INFO] [stdout] test parser_v2::normalize::common::tests::canonical_data_type_integer ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::infer_missing_on_preserves_status_table ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::infer_missing_on_still_singularizes_regular_plurals ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::infer_missing_right_table_noop_when_present ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::infer_missing_right_table_from_on ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::string_right_table_to_object_converts ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::strip_unknown_fields_removes_non_objects ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::test_apply_extracted_fields ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::already_canonical_no_change ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::no_op_field_no_change ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::normalize_recursively_through_array ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::normalizes_eq_operator ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::normalizes_equals_string ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::normalizes_greater_than ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::normalizes_less_than_or_equal ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::normalizes_nested_operators ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::normalizes_not_equal ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::resolve_binary_ops ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::resolve_comparison_ops ... ok
[INFO] [stdout] test parser_v2::normalize::order::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::order::tests::normalizes_bare_column ... ok
[INFO] [stdout] test parser_v2::normalize::order::tests::normalizes_expr_missing_type ... ok
[INFO] [stdout] test parser_v2::normalize::order::tests::normalizes_multiple_items ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::normalizes_binary_ops ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::is_small_model_detects_small_models ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::normalize_for_model_runs_small_pipeline_for_small_models ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::pipeline_applies_all_stages ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::pipeline_full_normalize ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::pipeline_no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::pipeline_normalize_str_invalid_json ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::pipeline_normalize_str_owned ... ok
[INFO] [stdout] test local::tests::vllm_client_sends_bearer_when_api_key_set ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::pipeline_normalizes_case_when_expression ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::small_model_fixes_from_string ... ok
[INFO] [stdout] test parser_v2::normalize::operators::tests::is_canonical_works ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::small_model_fixes_where_missing_type ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::small_model_no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::query::tests::full_normalize ... ok
[INFO] [stdout] test parser_v2::normalize::query::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::query::tests::strip_unknown_fields_noop_when_clean ... ok
[INFO] [stdout] test parser_v2::normalize::query::tests::strip_unknown_fields_removes_extra ... ok
[INFO] [stdout] test parser_v2::normalize::query::tests::wrap_descending_expr_into_order_by ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::small_model_fixes_limit_string ... ok
[INFO] [stdout] test parser_v2::normalize::query::tests::wrap_descending_expr_noop_when_missing_fields ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::small_model_fixes_select_types ... ok
[INFO] [stdout] test parser_v2::normalize::query::tests::wrap_descending_expr_noop_when_order_by_exists ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::full_normalize_select ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::inject_default_select_noop_when_no_from ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::inject_default_select_noop_when_select_exists ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::inject_default_select_when_missing ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::inject_missing_type_noop_when_already_present ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::normalize_projection_string_to_object ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::normalize_star_string_to_star_object ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::remove_invalid_items ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::remove_invalid_removes_empty_select ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::remove_star_when_group_by_present ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::star_removed_leaves_fallback_column_when_empty ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::strip_unknown_fields_from_joins ... ok
[INFO] [stdout] test parser_v2::normalize::join::tests::strip_unknown_fields_removes_empty_joins ... ok
[INFO] [stdout] test parser_v2::normalize::pipeline::tests::pipeline_normalize_str_borrowed ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::bare_string_operation_canonicalized ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::canonicalizes_uppercase_operation ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::does_not_overwrite_existing_set_operation ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::lifts_bare_union_all_key ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::test_normalize_group_by_strings ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::lifts_bare_union_key ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::renames_op_to_operation ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::renames_right_query_to_right ... ok
[INFO] [stdout] test parser_v2::normalize::table::tests::from_already_object ... ok
[INFO] [stdout] test parser_v2::normalize::table::tests::from_missing ... ok
[INFO] [stdout] test parser_v2::normalize::table::tests::from_string_to_object ... ok
[INFO] [stdout] test parser_v2::normalize::table::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::table::tests::normalize_works ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::inject_missing_type_on_column_ref ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::already_canonical_no_change ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::date_alias_stays_date_not_timestamp ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::decimal_alias_maps_to_decimal_not_float ... ok
[INFO] [stdout] test parser_v2::normalize::select::tests::star_not_removed_when_no_group_by ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::infers_boolean_type_from_null_data_type ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::date_literal_preserves_data_type_through_normalize ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::infers_string_type_from_null_data_type ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::is_canonical_works ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::keeps_null_data_type_when_value_is_null ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::new_types_are_canonical ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::no_data_type_field_no_change ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::normalizes_bigint_to_int ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::normalizes_bool_to_boolean ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::normalizes_datetime_to_timestamp ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::array_of_operands_promotes_first ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::normalizes_nested_data_types ... ok
[INFO] [stdout] test parser_v2::normalize::set_op::tests::canonical_op_handles_variants ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::normalizes_integer_to_int ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::normalizes_numeric_to_decimal ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::resolve_data_type_works ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::infers_float_type_from_null_data_type ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::collapse_where_array_no_valid_predicate ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::infers_int_type_from_null_data_type ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::collapse_where_array_to_object ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::collapse_where_array_with_garbage ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::extract_still_lifts_when_top_level_missing ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::extract_skips_when_top_level_already_has_field ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::extract_top_level_fields_from_where ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::full_normalize_where ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::and_false_right ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::extract_top_level_fields_from_where_noop_when_not_present ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::and_true_left ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::normalizes_varchar_to_string ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::collapse_where_noop_for_object ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::and_true_right ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::column_eq_self ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::column_ne_self ... ok
[INFO] [stdout] test parser_v2::normalize::value::tests::normalizes_through_array ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::duplicate_and ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::duplicate_or ... ok
[INFO] [stdout] test parser_v2::normalize::where_::tests::extract_top_level_fields_removes_empty_where ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::fold_eq_true ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::fold_eq_false ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::fold_gt_true ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::not_not_elimination ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::or_false_left ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::or_true_right ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::or_false_right ... ok
[INFO] [stdout] test parser_v2::optimize::projection::tests::deduplicates_with_qualified_columns ... ok
[INFO] [stdout] test parser_v2::optimize::projection::tests::keeps_expr_projections ... ok
[INFO] [stdout] test parser_v2::optimize::projection::tests::keeps_star_projections ... ok
[INFO] [stdout] test parser_v2::optimize::projection::tests::keeps_unique_columns ... ok
[INFO] [stdout] test parser_v2::optimize::projection::tests::removes_duplicate_columns ... ok
[INFO] [stdout] test parser_v2::optimize::rewrite::tests::rewrite_is_currently_noop ... ok
[INFO] [stdout] test parser_v2::optimize::tests::no_change_for_canonical ... ok
[INFO] [stdout] test parser_v2::optimize::tests::simplifies_where_predicate ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::nested_and_or_simplification ... ok
[INFO] [stdout] test parser_v2::optimize::predicate::tests::no_simplification_needed ... ok
[INFO] [stdout] test parser_v2::optimize::tests::recursive_cte_optimization ... ok
[INFO] [stdout] test parser_v2::optimize::tests::removes_duplicate_projections ... ok
[INFO] [stdout] test parser_v2::optimize::tests::simplifies_join_predicate ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_invalid_json ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_lenient_skips_validation ... ok
[INFO] [stdout] test local::tests::vllm_client_uses_json_schema_response_format ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_debug_returns_intermediates ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_distinct_propagates ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_bare_union_all_lifted_end_to_end ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_from_subquery_end_to_end ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_minus_alias_end_to_end ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_union_all_end_to_end ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_qwen_style ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_missing_from ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_deepseek_style ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_best_json_obj_none_when_no_valid_json ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_best_json_obj_prefers_plan_over_first ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_best_json_obj_skips_leading_prose_braces ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_matching_close_basic ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_matching_close_string_aware ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_op_field_renamed_end_to_end ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_outermost_array_nested ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_outermost_array_simple ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_valid_star_plan ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_llama_style ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_outermost_json_obj_nested ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_outermost_json_obj_no_brace ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_recursive_cte_end_to_end ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_with_markdown_fence ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_outermost_json_obj_simple ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_outermost_json_obj_string_braces ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_outermost_json_obj_unbalanced ... ok
[INFO] [stdout] test parser_v2::pipeline::tests::parse_uppercase_union_all_end_to_end ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::find_outermost_json_obj_with_braces_in_string ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::is_balanced_object_false ... ok
[INFO] [stdout] test parser_v2::recover::bracket::tests::is_balanced_object_true ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::detect_template_leak_both_tokens ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::extracts_from_array_wrapper ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::longest_valid_json_no_valid_objects ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::longest_valid_json_when_multiple_objects ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::passes_through_valid_json ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::returns_original_when_no_json_found ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::strips_fence_then_finds_object ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::strips_fence_with_text_after ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::detect_template_leak_start_only ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::finds_outermost_object ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::strips_fence_without_closing ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::strips_markdown_fence ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::extract_first_obj_from_empty_array ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::extract_first_obj_from_non_array ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::extract_first_obj_from_array_non_object ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::invalid_json ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::try_parse_works ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::valid_json_object ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::valid_json_scalar ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::fence_language_no_tag ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::fence_language_not_fenced ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::fence_language_returns_tag ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::is_fenced_false ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::is_fenced_true ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::strip_fence_arbitrary_lang ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::strip_fence_empty_inner ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::strip_fence_json_lang ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::valid_json_array ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::strip_fence_no_lang ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::strip_fence_not_fenced ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::strip_fence_with_text_after ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::strip_fence_without_closing ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::cross_join_without_on_is_valid ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_cte_with_empty_name ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_empty_column_in_column_ref ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_empty_from_table ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_empty_function_name ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_empty_column_ref ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_empty_like_pattern ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_empty_select ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_missing_join_condition ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::valid_plan_passes ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::validates_nested_cte ... ok
[INFO] [stdout] test parser_v2::validate::validator::tests::empty_select_errors ... ok
[INFO] [stdout] test parser_v2::validate::validator::tests::multiple_errors_collected ... ok
[INFO] [stdout] test parser_v2::validate::validator::tests::valid_plan_ok ... ok
[INFO] [stdout] test parser_v2::validate::validator::tests::validation_error_clone ... ok
[INFO] [stdout] test parser_v2::validate::validator::tests::validation_error_display ... ok
[INFO] [stdout] test parser_v2::validate::semantic::tests::detects_limit_zero ... ok
[INFO] [stdout] test tests::create_llm_client_rejects_empty_model ... ok
[INFO] [stdout] test tests::create_llm_client_requires_api_key_for_hosted_providers ... ok
[INFO] [stdout] test tests::llm_config_default_matches_documented_defaults ... ok
[INFO] [stdout] test tests::llm_config_effective_api_base_uses_provider_default ... ok
[INFO] [stdout] test tests::llm_config_round_trips_through_serde ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::detect_template_leak_none ... ok
[INFO] [stdout] test parser_v2::recover::extract::tests::handles_nested_braces ... ok
[INFO] [stdout] test tests::mock_client_returns_success_and_failure ... ok
[INFO] [stdout] test tests::mock_client_stream_plan_emits_single_chunk ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::extract_first_obj_from_array ... ok
[INFO] [stdout] test parser_v2::recover::json::tests::extract_first_obj_from_array_multi ... ok
[INFO] [stdout] test parser_v2::recover::markdown::tests::strip_fence_json_lang_no_newline ... ok
[INFO] [stdout] test tests::openai_client_converts_invalid_plan_to_llm_parse_error ... ok
[INFO] [stdout] test tests::openai_client_falls_back_to_json_object_for_unknown_models ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_converts_error_response ... ok
[INFO] [stdout] test tests::openai_client_stream_emits_delta_chunks ... ok
[INFO] [stdout] test tests::create_llm_client_allows_local_providers_without_key ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_converts_invalid_plan_to_llm_parse_error ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_endpoint_uses_default_when_unset ... ok
[INFO] [stdout] test tests::openai_client_sends_messages_and_parses_query_plan ... ok
[INFO] [stdout] test tests::openai_client_stream_propagates_http_error ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_requires_api_key ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_effective_max_tokens_floors_low_values ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_stream_propagates_http_error ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_stream_emits_delta_chunks ... ok
[INFO] [stdout] test zhipu::tests::zhipu_query_plan_schema_round_trips_through_parse ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_reads_api_key_from_env ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_falls_back_to_json_object_for_older_models ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_uses_strict_json_schema_for_glm_4_7 ... ok
[INFO] [stdout] test zhipu::tests::zhipu_client_supports_strict_json_schema_detection ... ok
[INFO] [stdout] test deepseek::tests::deepseek_client_retries_retryable_http_errors ... ok
[INFO] [stdout] test tests::llm_span_contains_provider_and_model ... ok
[INFO] [stdout] test tests::openai_client_retries_temporary_http_errors ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 434 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.70s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/bench_profile.rs (/opt/rustwide/target/release/build/vlorql-llm/8c7b38745f96dffd/out/bench_profile-8c7b38745f96dffd)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test bench_profile_simple ... ok
[INFO] [stdout] test bench_profile_messy ... ok
[INFO] [stdout] test bench_profile_all ... ok
[INFO] [stdout] test bench_profile_complex ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/golden_test.rs (/opt/rustwide/target/release/build/vlorql-llm/3c42295fa68bd66d/out/golden_test-3c42295fa68bd66d)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test golden_edge_empty_group_by ... ok
[INFO] [stdout] test golden_edge_limit_zero_fixed ... ok
[INFO] [stdout] test golden_edge_missing_data_type ... ok
[INFO] [stdout] test golden_claude_with_limit_and_offset ... ok
[INFO] [stdout] test golden_deepseek_filter_alias ... ok
[INFO] [stdout] test golden_claude_standard ... ok
[INFO] [stdout] test golden_deepseek_with_operator_aliases ... ok
[INFO] [stdout] test golden_glm_conditions_and_fields ... ok
[INFO] [stdout] test golden_openai_simple_star ... ok
[INFO] [stdout] test golden_glm_with_group_by ... ok
[INFO] [stdout] test golden_llama_markdown_fence ... ok
[INFO] [stdout] test golden_mistral_standard ... ok
[INFO] [stdout] test golden_llama_where_array_with_garbage ... ok
[INFO] [stdout] test golden_qwen_array_wrapped ... ok
[INFO] [stdout] test golden_openai_with_where ... ok
[INFO] [stdout] test golden_qwen_string_projections ... ok
[INFO] [stdout] test golden_mistral_with_join_and_cte ... ok
[INFO] [stdout] test golden_openai_with_join ... ok
[INFO] [stdout] test golden_all_cases ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.26s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration/multi_provider.rs (/opt/rustwide/target/release/build/vlorql-llm/b7561644e890c70e/out/multi_provider-b7561644e890c70e)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test create_llm_client_rejects_empty_model ... ok
[INFO] [stdout] test create_llm_client_rejects_missing_api_key_for_hosted_providers ... ok
[INFO] [stdout] test create_llm_client_rejects_zhipu_without_key ... ok
[INFO] [stdout] test create_llm_client_requires_api_key_for_openai ... ok
[INFO] [stdout] test create_llm_client_allows_claude_with_anthropic_config ... ok
[INFO] [stdout] test create_llm_client_allows_local_providers_without_key ... ok
[INFO] [stderr]      Running tests/parser_v2/expression_test.rs (/opt/rustwide/target/release/build/vlorql-llm/cb4167a8f1b5e7dd/out/parser_v2_expression-cb4167a8f1b5e7dd)
[INFO] [stdout] test llm_client_report_provider_variant ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test injects_missing_predicate_type ... ok
[INFO] [stdout] test normalizes_multiple_operators ... ok
[INFO] [stdout] test full_p4_pipeline_expression_normalize ... ok
[INFO] [stdout] test idempotent_after_full_pipeline ... ok
[INFO] [stdout] test injects_missing_expression_types_in_where ... ok
[INFO] [stdout] test normalizes_data_types_in_literals ... ok
[INFO] [stdout] test injects_missing_right_in_comparison ... ok
[INFO] [stderr]      Running tests/parser_v2/fix_test.rs (/opt/rustwide/target/release/build/vlorql-llm/51a14a7856cb57f6/out/parser_v2_fix-51a14a7856cb57f6)
[INFO] [stdout] test deepseek_style_with_operator_and_type_issues ... ok
[INFO] [stdout] test normalizes_data_types_in_multiple_literals ... ok
[INFO] [stdout] test normalizes_operators_in_where ... ok
[INFO] [stdout] test qwen_style_missing_expression_types ... ok
[INFO] [stdout] test unwraps_array_wrapped_predicate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stderr]      Running tests/parser_v2/normalize_test.rs (/opt/rustwide/target/release/build/vlorql-llm/18d6c43b4a7b9f8e/out/parser_v2_normalize-18d6c43b4a7b9f8e)
[INFO] [stdout] test fix_empty_select_in_pipeline ... ok
[INFO] [stdout] test deepseek_style_with_fix ... ok
[INFO] [stdout] test fix_limit_zero_in_pipeline ... ok
[INFO] [stdout] test fix_missing_alias_in_join ... ok
[INFO] [stdout] test fix_missing_alias_in_pipeline ... ok
[INFO] [stdout] test full_pipeline_with_fix ... ok
[INFO] [stdout] test valid_plan_unchanged_by_fix ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 41 tests
[INFO] [stdout] test global_aliases_includes_new_entries ... ok
[INFO] [stdout] test normalize_already_canonical_no_change ... ok
[INFO] [stdout] test normalize_columns_to_select ... ok
[INFO] [stdout] test normalize_conditions_to_where ... ok
[INFO] [stdout] test normalize_cte_to_ctes ... ok
[INFO] [stdout] test normalize_desc_to_descending ... ok
[INFO] [stdout] test normalize_does_not_overwrite_existing ... ok
[INFO] [stdout] test normalize_field_to_column ... ok
[INFO] [stdout] test normalize_filter_to_where ... ok
[INFO] [stdout] test normalize_group_to_group_by ... ok
[INFO] [stdout] test normalize_join_to_joins ... ok
[INFO] [stdout] test normalize_kind_to_type ... ok
[INFO] [stdout] test normalize_max_rows_to_limit ... ok
[INFO] [stdout] test normalize_nested_multi_alias ... ok
[INFO] [stdout] test normalize_operator_to_op ... ok
[INFO] [stdout] test normalize_predicate_to_where ... ok
[INFO] [stdout] test normalize_projection_to_select ... ok
[INFO] [stdout] test normalize_skip_to_offset ... ok
[INFO] [stdout] test pipeline_normalize_str_borrowed ... ok
[INFO] [stdout] test normalize_sort_to_order_by ... ok
[INFO] [stdout] test pipeline_normalize_str_invalid_json ... ok
[INFO] [stdout] test resolve_cte_to_ctes ... ok
[INFO] [stdout] test pipeline_normalize_str_owned ... ok
[INFO] [stdout] test resolve_group_to_group_by ... ok
[INFO] [stdout] test normalize_table_name_to_table ... ok
[INFO] [stdout] test resolve_canonical_returns_none ... ok
[INFO] [stdout] test normalize_source_to_from ... ok
[INFO] [stdout] test resolve_kind_to_type ... ok
[INFO] [stdout] test resolve_max_rows_to_limit ... ok
[INFO] [stdout] test resolve_operator_to_op ... ok
[INFO] [stdout] test resolve_desc_to_descending ... ok
[INFO] [stdout] test resolve_field_to_column ... ok
[INFO] [stdout] test resolve_source_to_from ... ok
[INFO] [stdout] test resolve_filter_to_where ... ok
[INFO] [stdout] test resolve_projection_to_select ... ok
[INFO] [stdout] test resolve_unknown_returns_none ... ok
[INFO] [stdout] test resolve_join_to_joins ... ok
[INFO] [stdout] test resolve_sort_to_order_by ... ok
[INFO] [stdout] test resolve_table_name_to_table ... ok
[INFO] [stdout] test resolve_skip_to_offset ... ok
[INFO] [stdout] test pipeline_normalize_applies_aliases ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/parser_v2/optimize_test.rs (/opt/rustwide/target/release/build/vlorql-llm/a0f4e46e33a48fdb/out/parser_v2_optimize-a0f4e46e33a48fdb)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test simplify_and_true_in_where ... ok
[INFO] [stdout] test simplify_not_not ... ok
[INFO] [stdout] test canonical_plan_no_optimization ... ok
[INFO] [stdout] test full_pipeline_with_optimize ... ok
[INFO] [stdout] test deepseek_style_with_optimize ... ok
[INFO] [stdout] test remove_duplicate_columns ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/parser_v2/pipeline_test.rs (/opt/rustwide/target/release/build/vlorql-llm/7897cb7eacba71fc/out/parser_v2_pipeline-7897cb7eacba71fc)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test deepseek_style_full_pipeline ... ok
[INFO] [stdout] test error_on_missing_from ... ok
[INFO] [stdout] test double_normalize_roundtrip ... ok
[INFO] [stdout] test llama_style_full_pipeline ... ok
[INFO] [stdout] test messy_multi_model_full_pipeline ... ok
[INFO] [stdout] test full_plan_with_joins_and_ctes ... ok
[INFO] [stdout] test glm_style_full_pipeline ... ok
[INFO] [stdout] test error_on_invalid_json ... ok
[INFO] [stdout] test minimal_star_plan ... ok
[INFO] [stdout] test openai_style_full_pipeline ... ok
[INFO] [stdout] test qwen_style_full_pipeline ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/parser_v2/recover_test.rs (/opt/rustwide/target/release/build/vlorql-llm/6c448d62185b6340/out/parser_v2_recover-6c448d62185b6340)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test extracts_from_array_wrapper ... ok
[INFO] [stdout] test empty_input ... ok
[INFO] [stdout] test extract_skips_reasoning_prose_before_plan ... ok
[INFO] [stdout] test nested_array_wrapping ... ok
[INFO] [stdout] test passes_through_valid_json ... ok
[INFO] [stdout] test only_array_brackets ... ok
[INFO] [stdout] test realistic_markdown_fence ... ok
[INFO] [stdout] test realistic_openai_response ... ok
[INFO] [stdout] test realistic_qwen_response ... ok
[INFO] [stdout] test only_braces_no_content ... ok
[INFO] [stdout] test realistic_deepseek_response ... ok
[INFO] [stdout] test realistic_nested_braces ... ok
[INFO] [stdout] test multiple_objects_picks_first ... ok
[INFO] [stdout] test whitespace_only ... ok
[INFO] [stdout] test returns_original_when_no_json_found ... ok
[INFO] [stdout] test realistic_prefix_text ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/parser_v2/structure_test.rs (/opt/rustwide/target/release/build/vlorql-llm/1f6df107a040bf76/out/parser_v2_structure-1f6df107a040bf76)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test full_multi_stage_normalize ... ok
[INFO] [stdout] test glm_style_output ... ok
[INFO] [stdout] test group_by_with_nulls ... ok
[INFO] [stdout] test llama_style_output ... ok
[INFO] [stdout] test empty_group_by_removed ... ok
[INFO] [stdout] test messy_llama_deepseek_mix ... ok
[INFO] [stdout] test deepseek_style_output ... ok
[INFO] [stdout] test idempotent_normalize ... ok
[INFO] [stdout] test misplaced_top_level_fields_in_where ... ok
[INFO] [stdout] test openai_style_output ... ok
[INFO] [stdout] test missing_select_gets_default ... ok
[INFO] [stdout] test plan_level_fields_in_joins ... ok
[INFO] [stdout] test qwen_style_output ... ok
[INFO] [stdout] test single_select_wrapped_to_array ... ok
[INFO] [stdout] test string_join_right_table ... ok
[INFO] [stdout] test string_table_name_in_from ... ok
[INFO] [stdout] test unknown_top_level_fields_stripped ... ok
[INFO] [stdout] test top_level_expr_descending_to_order_by ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/parser_v2/validate_test.rs (/opt/rustwide/target/release/build/vlorql-llm/dd401f984092e25f/out/parser_v2_validate-dd401f984092e25f)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test messy_deepseek_plan_ends_up_valid ... ok
[INFO] [stdout] test detects_limit_zero ... ok
[INFO] [stdout] test valid_plan_with_cross_join ... ok
[INFO] [stdout] test invalid_json_has_no_plan ... ok
[INFO] [stdout] test valid_full_plan ... ok
[INFO] [stdout] test missing_from_fails_build ... ok
[INFO] [stdout] test messy_qwen_plan_ends_up_valid ... ok
[INFO] [stdout] test missing_from_fails_validation ... ok
[INFO] [stdout] test missing_join_condition_fails_build ... ok
[INFO] [stdout] test valid_star_plan ... ok
[INFO] [stdout] test valid_plan_with_cte ... ok
[INFO] [stderr]    Doc-tests vlorql_llm
[INFO] [stdout] test valid_plan_with_joins ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test src/parser_v2/builder/expr_builder/helpers.rs - parser_v2::builder::expr_builder::helpers::parse_data_type (line 119) ... ok
[INFO] [stdout] test src/lib.rs - LlmProvider (line 86) ... ok
[INFO] [stdout] test src/parser_v2/builder/join_builder.rs - parser_v2::builder::join_builder::build_join_clause (line 20) ... ok
[INFO] [stdout] test src/parser_v2/builder/expr_builder/builders.rs - parser_v2::builder::expr_builder::builders::build_expression (line 77) ... ok
[INFO] [stdout] test src/lib.rs - LlmClient (line 243) ... ok
[INFO] [stdout] test src/parser_v2/builder/expr_builder/builders.rs - parser_v2::builder::expr_builder::builders::build_predicate (line 303) ... ok
[INFO] [stdout] test src/parser_v2/builder/mod.rs - parser_v2::builder (line 21) ... ok
[INFO] [stdout] test src/parser_v2/normalize/aliases.rs - parser_v2::normalize::aliases (line 9) ... ignored
[INFO] [stdout] test src/parser_v2/pipeline.rs - parser_v2::pipeline::parse_query_plan (line 62) ... ignored
[INFO] [stdout] test src/lib.rs - LlmConfig (line 153) ... ok
[INFO] [stdout] test src/parser_v2/builder/query_builder.rs - parser_v2::builder::query_builder::build_plan (line 27) ... ok
[INFO] [stdout] test src/parser_v2/builder/select_builder.rs - parser_v2::builder::select_builder::build_projection (line 17) ... ok
[INFO] [stdout] test src/mock.rs - mock::MockLlmClient (line 18) ... ok
[INFO] [stdout] test src/parser_v2/builder/table_builder.rs - parser_v2::builder::table_builder::build_from_clause (line 20) ... ok
[INFO] [stdout] test src/parser_v2/builder/select_builder.rs - parser_v2::builder::select_builder::build_projections (line 77) ... ok
[INFO] [stdout] test src/lib.rs - create_llm_client (line 342) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.92s; merged doctests compilation took 0.77s
[INFO] running `Command { std: "docker" "inspect" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0", kill_on_drop: false }`
[INFO] [stdout] f5346e1f17e94c3de74d31bf7131073797e109ec86a14c220d1641329421c7d0
