[INFO] fetching crate roblox-slang 2.0.3... [INFO] testing roblox-slang-2.0.3 against try#8da20828b6ea601dfd8e2448cb50ace88876bd78 for pr-150933 [INFO] extracting crate roblox-slang 2.0.3 into /workspace/builds/worker-4-tc2/source [INFO] started tweaking crates.io crate roblox-slang 2.0.3 [INFO] finished tweaking crates.io crate roblox-slang 2.0.3 [INFO] tweaked toml for crates.io crate roblox-slang 2.0.3 written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate roblox-slang 2.0.3 on toolchain 8da20828b6ea601dfd8e2448cb50ace88876bd78 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate roblox-slang 2.0.3 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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f7b8861d2d99ca288bfee359becdd3b4c5ece541c10281c898b1f53625edb4ad [INFO] running `Command { std: "docker" "start" "-a" "f7b8861d2d99ca288bfee359becdd3b4c5ece541c10281c898b1f53625edb4ad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f7b8861d2d99ca288bfee359becdd3b4c5ece541c10281c898b1f53625edb4ad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f7b8861d2d99ca288bfee359becdd3b4c5ece541c10281c898b1f53625edb4ad", kill_on_drop: false }` [INFO] [stdout] f7b8861d2d99ca288bfee359becdd3b4c5ece541c10281c898b1f53625edb4ad [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 88bbdc25b11f4b2a0d8d3642cbba2d1a0aa73bc7393e440a616f21524dc95b81 [INFO] running `Command { std: "docker" "start" "-a" "88bbdc25b11f4b2a0d8d3642cbba2d1a0aa73bc7393e440a616f21524dc95b81", kill_on_drop: false }` [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling csv-core v0.1.13 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling inotify v0.9.6 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling clap_builder v4.5.57 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling notify v6.1.1 [INFO] [stderr] Compiling humantime v2.3.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling file-id v0.2.3 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling notify-debouncer-full v0.3.2 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling csv v1.4.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling clap v4.5.57 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling roblox-slang v2.0.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s [INFO] running `Command { std: "docker" "inspect" "88bbdc25b11f4b2a0d8d3642cbba2d1a0aa73bc7393e440a616f21524dc95b81", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "88bbdc25b11f4b2a0d8d3642cbba2d1a0aa73bc7393e440a616f21524dc95b81", kill_on_drop: false }` [INFO] [stdout] 88bbdc25b11f4b2a0d8d3642cbba2d1a0aa73bc7393e440a616f21524dc95b81 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 49d078cb8c55e0a4a87d1d54eeb2596c05899ce28c13455af97c81857fe167cc [INFO] running `Command { std: "docker" "start" "-a" "49d078cb8c55e0a4a87d1d54eeb2596c05899ce28c13455af97c81857fe167cc", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling clap_builder v4.5.57 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling inotify v0.9.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling predicates-core v1.0.9 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling notify v6.1.1 [INFO] [stderr] Compiling csv-core v0.1.13 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling file-id v0.2.3 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling notify-debouncer-full v0.3.2 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling predicates-tree v1.0.12 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling quickcheck_macros v1.1.0 [INFO] [stderr] Compiling clap v4.5.57 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling csv v1.4.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling env_logger v0.8.4 [INFO] [stderr] Compiling predicates v3.1.3 [INFO] [stderr] Compiling quickcheck v1.0.3 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling mockito v1.7.2 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling roblox-slang v2.0.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 08s [INFO] running `Command { std: "docker" "inspect" "49d078cb8c55e0a4a87d1d54eeb2596c05899ce28c13455af97c81857fe167cc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "49d078cb8c55e0a4a87d1d54eeb2596c05899ce28c13455af97c81857fe167cc", kill_on_drop: false }` [INFO] [stdout] 49d078cb8c55e0a4a87d1d54eeb2596c05899ce28c13455af97c81857fe167cc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 739bb8bebf199e0d0455419a3eaf74b6fe530e249d9fe47c7e5ca16a3e89a869 [INFO] running `Command { std: "docker" "start" "-a" "739bb8bebf199e0d0455419a3eaf74b6fe530e249d9fe47c7e5ca16a3e89a869", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/roblox_slang-f68c53b28164d482) [INFO] [stdout] [INFO] [stdout] running 286 tests [INFO] [stdout] test config::defaults::tests::test_config_default ... ok [INFO] [stdout] test config::schema::tests::test_analytics_config_defaults ... ok [INFO] [stdout] test config::defaults::tests::test_config_default_validates ... ok [INFO] [stdout] test config::schema::tests::test_analytics_config_with_callback ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_base_locale_not_in_supported ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_empty_base_locale ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_empty_input_directory ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_empty_output_directory ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_empty_supported_locales ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_same_input_output ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_unsupported_locale ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_valid ... ok [INFO] [stdout] test config::schema::tests::test_config_with_namespace ... ok [INFO] [stdout] test config::schema::tests::test_default_functions ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_cloud ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_default ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_embedded ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_hybrid ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_invalid_mode ... ok [INFO] [stdout] test config::schema::tests::test_override_config_defaults ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value_carriage_return ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value_empty ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value_multiple_quotes ... ok [INFO] [stdout] test config::tests::test_create_default_config ... ok [INFO] [stdout] test config::tests::test_create_default_overrides ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value_newline ... ok [INFO] [stdout] test config::tests::test_load_config_empty_file ... ok [INFO] [stdout] test config::tests::test_load_config_file_not_found ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv_missing_locale ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv ... ok [INFO] [stdout] test config::tests::test_load_config_valid ... ok [INFO] [stdout] test config::tests::test_load_config_invalid_yaml ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv_sorted_keys ... ok [INFO] [stdout] test config::tests::test_load_config_validation_error ... ok [INFO] [stdout] test config::tests::test_load_config_with_namespace ... ok [INFO] [stdout] test config::tests::test_load_config_with_analytics ... ok [INFO] [stdout] test config::tests::test_load_config_with_overrides ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv_special_characters ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_empty_cells ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_empty_file ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_invalid_header ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_empty_values ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_mixed ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_unquoted ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_with_commas ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_with_quotes ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_skip_empty_lines ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv_with_context ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_with_context ... ok [INFO] [stdout] test generator::csv::tests::test_roundtrip_csv ... ok [INFO] [stdout] test generator::luau::test_analytics_disabled ... ok [INFO] [stdout] test generator::luau::test_analytics_generation ... ok [INFO] [stdout] test generator::luau::test_analytics_with_custom_callback ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_cloud ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_default_mode ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_embedded ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_hybrid ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_multiple_locales ... ok [INFO] [stdout] test generator::luau::test_generate_method_cloud_simple ... ok [INFO] [stdout] test generator::luau::test_generate_method_cloud_with_analytics ... ok [INFO] [stdout] test generator::luau::test_generate_method_cloud_with_params ... ok [INFO] [stdout] test generator::luau::test_generate_method_embedded_simple ... ok [INFO] [stdout] test generator::luau::test_generate_method_embedded_with_analytics ... ok [INFO] [stdout] test generator::luau::test_generate_method_embedded_with_params ... ok [INFO] [stdout] test generator::luau::test_generate_method_hybrid_simple ... ok [INFO] [stdout] test generator::luau::test_generate_method_hybrid_with_analytics ... ok [INFO] [stdout] test generator::luau::test_generate_method_hybrid_with_params ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_backslashes ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_basic ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_carriage_return ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_complex ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_multiple_special_chars ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_newlines ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_escape_no_unescaped_special_chars ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_escape_length_increases_or_stays_same ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_quotes ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_tabs ... ok [INFO] [stdout] test generator::luau::tests::test_extract_parameters ... ok [INFO] [stdout] test generator::luau::tests::test_extract_parameters_no_params ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_cloud_has_localization_service ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_cloud_with_analytics ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_embedded_no_localization_service ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_embedded_with_analytics ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_hybrid_with_analytics ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_hybrid_optional_cloud ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_server_safe ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_single_locale ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_multiple_locales ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_sorted_keys ... ok [INFO] [stdout] test generator::luau::tests::test_generate_namespace_with_plurals ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_empty_locale ... ok [INFO] [stdout] test generator::luau::tests::test_generate_with_format_specifiers ... ok [INFO] [stdout] test generator::types::tests::test_build_namespace_tree ... ok [INFO] [stdout] test migrator::custom_json::tests::test_extract_translations_direct ... ok [INFO] [stdout] test generator::types::tests::test_generate_type_definitions_with_plurals ... ok [INFO] [stdout] test generator::luau::tests::test_generate_luau_complete ... ok [INFO] [stdout] test migrator::custom_json::tests::test_extract_translations_pattern2 ... ok [INFO] [stdout] test migrator::custom_json::tests::test_extract_translations_pattern3 ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_with_special_chars ... ok [INFO] [stdout] test migrator::gettext::tests::test_extract_quoted_string ... ok [INFO] [stdout] test generator::luau::tests::test_generate_flat_methods_with_plurals ... ok [INFO] [stdout] test migrator::gettext::tests::test_parse_po_file_multiline ... ok [INFO] [stdout] test migrator::gettext::tests::test_parse_po_file_simple ... ok [INFO] [stdout] test migrator::gettext::tests::test_parse_po_file_with_comments ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel ... ok [INFO] [stdout] test migrator::gettext::tests::test_migrate_gettext ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_trailing_underscore ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_dot_to_nested ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_empty ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_none ... ok [INFO] [stdout] test migrator::custom_json::tests::test_migrate_custom_json ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_snake_to_camel ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_special_chars ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_empty ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_leading_underscore ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_multiple_underscores ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_no_underscores ... ok [INFO] [stdout] test migrator::custom_json::tests::test_extract_translations_pattern1 ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_upper_to_lower ... ok [INFO] [stdout] test migrator::tests::test_key_transform_debug ... ok [INFO] [stdout] test parser::overrides::tests::test_parse_overrides_nonexistent_file ... ok [INFO] [stdout] test parser::overrides::tests::test_parse_overrides ... ok [INFO] [stdout] test migrator::tests::test_migration_format_debug ... ok [INFO] [stdout] test parser::json::tests::test_flatten_deep_nested ... ok [INFO] [stdout] test parser::json::tests::test_flatten_nested ... ok [INFO] [stdout] test parser::json::tests::test_flatten_simple ... ok [INFO] [stdout] test migrator::tests::test_migrate_with_transform ... ok [INFO] [stdout] test migrator::tests::test_migrate_gettext ... ok [INFO] [stdout] test migrator::tests::test_migrate_custom_json ... ok [INFO] [stdout] test parser::json::tests::test_parse_json_file_structure ... ok [INFO] [stdout] test parser::types::tests::test_translation_creation ... ok [INFO] [stdout] test parser::overrides::tests::test_merge_translations ... ok [INFO] [stdout] test parser::types::tests::test_translation_clone ... ok [INFO] [stdout] test parser::types::tests::test_translation_equality ... ok [INFO] [stdout] test parser::types::tests::test_translation_map ... ok [INFO] [stdout] test parser::types::tests::test_translation_with_context ... ok [INFO] [stdout] test parser::yaml::tests::test_parse_yaml_nested ... ok [INFO] [stdout] test roblox::auth::tests::test_load_from_config ... ok [INFO] [stdout] test parser::yaml::tests::test_yaml_to_json_conversion ... ok [INFO] [stdout] test roblox::auth::tests::test_load_missing_api_key ... ok [INFO] [stdout] test roblox::auth::tests::test_validate_empty_key ... ok [INFO] [stdout] test parser::yaml::tests::test_parse_yaml_simple ... ok [INFO] [stdout] test roblox::auth::tests::test_validate_short_key ... ok [INFO] [stdout] test roblox::auth::tests::test_validate_valid_key ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_escape_idempotent_on_safe_strings ... ok [INFO] [stdout] test roblox::client::tests::test_client_creation_with_empty_key ... ok [INFO] [stdout] test roblox::client::tests::test_client_has_correct_base_url ... ok [INFO] [stdout] test roblox::client::tests::test_client_stores_api_key ... ok [INFO] [stdout] test roblox::merge::tests::test_identical_translations ... ok [INFO] [stdout] test roblox::merge::tests::test_compute_diff ... ok [INFO] [stdout] test roblox::merge::tests::test_merge_strategy ... ok [INFO] [stdout] test roblox::client::tests::test_client_creation ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_non_retryable_error ... ok [INFO] [stdout] test roblox::merge::tests::test_overwrite_strategy ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_exponential_backoff ... ok [INFO] [stdout] test roblox::merge::tests::test_skip_conflicts_strategy ... ok [INFO] [stdout] test roblox::sync::tests::test_entries_to_translations ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_default ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_success_first_try ... ok [INFO] [stdout] test roblox::sync::tests::test_sync_orchestrator_new ... ok [INFO] [stdout] test roblox::merge::tests::test_empty_diff ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_map_empty ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_entries_with_context ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_map_multiple_keys ... ok [INFO] [stdout] test roblox::types::tests::test_cloud_config_defaults ... ok [INFO] [stdout] test roblox::types::tests::test_cloud_config_with_values ... ok [INFO] [stdout] test roblox::types::tests::test_cloud_sync_error_display ... ok [INFO] [stdout] test roblox::types::tests::test_download_stats ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_respects_retry_after ... ok [INFO] [stdout] test roblox::types::tests::test_entry_metadata ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_map ... ok [INFO] [stdout] test roblox::sync::tests::test_entries_to_translations_multiple_locales ... ok [INFO] [stdout] test roblox::types::tests::test_identifier_with_context ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_entries ... ok [INFO] [stdout] test roblox::types::tests::test_localization_entry_creation ... ok [INFO] [stdout] test roblox::types::tests::test_get_table_entries_response_deserialization ... ok [INFO] [stdout] test roblox::sync::tests::test_entries_to_translations_with_context ... ok [INFO] [stdout] test roblox::types::tests::test_sync_stats ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_deep_nested ... ok [INFO] [stdout] test roblox::types::tests::test_upload_stats ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_non_string_values ... ok [INFO] [stdout] test roblox::types::tests::test_translation_serialization ... ok [INFO] [stdout] test roblox::types::tests::test_localization_entry_clone ... ok [INFO] [stdout] test utils::flatten::tests::test_roundtrip ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_empty_object ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_with_prefix ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_simple ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_empty ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_nested ... ok [INFO] [stdout] test utils::format::tests::test_extract_empty_braces ... ok [INFO] [stdout] test utils::format::tests::test_extract_all_specifier_types ... ok [INFO] [stdout] test utils::format::tests::test_extract_nested_braces ... ok [INFO] [stdout] test utils::format::tests::test_extract_no_parameters ... ok [INFO] [stdout] test utils::format::tests::test_extract_parameters_with_format ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_datetime ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_int ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_none ... ok [INFO] [stdout] test utils::format::tests::test_extract_multiple_same_param ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_translate ... ok [INFO] [stdout] test utils::format::tests::test_parse_datetime_specifier ... ok [INFO] [stdout] test utils::format::tests::test_parse_fixed_specifier ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_num ... ok [INFO] [stdout] test utils::format::tests::test_parse_num_specifier ... ok [INFO] [stdout] test utils::format::tests::test_parse_fixed_with_different_digits ... ok [INFO] [stdout] test utils::format::tests::test_parse_format_specifier ... ok [INFO] [stdout] test utils::format::tests::test_parse_invalid_fixed_defaults_to_2 ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_single_key ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_translations ... ok [INFO] [stdout] test utils::format::tests::test_parse_unknown_specifier ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_multiple_roots ... ok [INFO] [stdout] test utils::format::tests::test_parse_no_specifier ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_deep ... ok [INFO] [stdout] test utils::format::tests::test_parse_translate_specifier ... ok [INFO] [stdout] test utils::locales::tests_locale_detection::test_country_locale_map_coverage ... ok [INFO] [stdout] test utils::locales::tests_locale_detection::test_get_locale_for_country ... ok [INFO] [stdout] test utils::locales::tests::test_get_supported_locale_codes ... ok [INFO] [stdout] test utils::format::tests::test_parse_with_whitespace ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_fixed ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key_all_forms ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key_empty ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key_nested_parentheses ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key_no_plural ... ok [INFO] [stdout] test utils::locales::tests::test_is_roblox_locale ... ok [INFO] [stdout] test utils::plurals::tests::test_is_plural_key ... ok [INFO] [stdout] test utils::plurals::tests::test_is_plural_key_all_forms ... ok [INFO] [stdout] test utils::plurals::tests::test_is_plural_key_false_cases ... ok [INFO] [stdout] test utils::locales::tests::test_get_roblox_locales ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_empty_namespace ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_invalid_namespace_chars ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_namespace_starts_with_digit ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_invalid_supported_locale ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_valid ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_path_traversal ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_invalid_base_locale ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_invalid_chars ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_empty ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_with_namespace ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_invalid_format ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_uppercase ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_valid ... ok [INFO] [stdout] test utils::plurals::tests::test_is_plural_key_nested ... ok [INFO] [stdout] test utils::validation::tests::test_validate_safe_path_double_dot ... ok [INFO] [stdout] test utils::validation::tests::test_validate_safe_path_traversal ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_whitespace ... ok [INFO] [stdout] test validator::conflicts::tests::test_empty_translations ... ok [INFO] [stdout] test validator::conflicts::tests::test_detect_conflicts ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_leading_dot ... ok [INFO] [stdout] test validator::conflicts::tests::test_multiple_conflicts ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_reserved_chars ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_trailing_dot ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_valid ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_consecutive_dots ... ok [INFO] [stdout] test validator::conflicts::tests::test_no_conflicts ... ok [INFO] [stdout] test utils::validation::tests::test_validate_safe_path_valid ... ok [INFO] [stdout] test validator::conflicts::tests::test_triple_duplicate ... ok [INFO] [stdout] test validator::conflicts::tests::test_same_key_different_locales_no_conflict ... ok [INFO] [stdout] test validator::coverage::tests::test_generate_coverage_report ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_empty ... ok [INFO] [stdout] test validator::missing::tests::test_detect_missing_keys ... ok [INFO] [stdout] test validator::missing::tests::test_empty_translations ... ok [INFO] [stdout] test validator::missing::tests::test_base_locale_only ... ok [INFO] [stdout] test validator::missing::tests::test_extra_keys_in_non_base_locale ... ok [INFO] [stdout] test validator::missing::tests::test_no_missing_keys ... ok [INFO] [stdout] test validator::missing::tests::test_multiple_locales_missing_keys ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys_nonexistent_dir ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys_empty_keys ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys_all_used ... ok [INFO] [stdout] test validator::tests::test_coverage_info_creation ... ok [INFO] [stdout] test validator::tests::test_coverage_info_clone ... ok [INFO] [stdout] test validator::unused::tests::test_find_lua_files ... ok [INFO] [stdout] test validator::unused::tests::test_find_lua_files_non_lua_file ... ok [INFO] [stdout] test validator::unused::tests::test_find_lua_files_single_file ... ok [INFO] [stdout] test validator::tests::test_coverage_info_debug ... ok [INFO] [stdout] test validator::unused::tests::test_find_lua_files_nested ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys_single_quotes ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_escape_preserves_safe_characters ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_embedded_data_all_locales_present ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_retry_then_success ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_max_retries_exceeded ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_embedded_data_completeness ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 286 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 16.10s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/roblox_slang-5d0102ee9046f2f3) [INFO] [stdout] [INFO] [stdout] running 286 tests [INFO] [stdout] test config::schema::tests::test_analytics_config_defaults ... ok [INFO] [stdout] test config::defaults::tests::test_config_default ... ok [INFO] [stdout] test config::schema::tests::test_analytics_config_with_callback ... ok [INFO] [stdout] test config::defaults::tests::test_config_default_validates ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_empty_base_locale ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_same_input_output ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_base_locale_not_in_supported ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_valid ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_empty_supported_locales ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_unsupported_locale ... ok [INFO] [stdout] test config::schema::tests::test_config_with_namespace ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_empty_input_directory ... ok [INFO] [stdout] test config::schema::tests::test_config_validate_empty_output_directory ... ok [INFO] [stdout] test config::schema::tests::test_default_functions ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_cloud ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_default ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_embedded ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_hybrid ... ok [INFO] [stdout] test config::schema::tests::test_localization_config_invalid_mode ... ok [INFO] [stdout] test config::schema::tests::test_override_config_defaults ... ok [INFO] [stdout] test config::tests::test_create_default_config ... ok [INFO] [stdout] test config::tests::test_load_config_empty_file ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value_multiple_quotes ... ok [INFO] [stdout] test config::tests::test_load_config_valid ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv ... ok [INFO] [stdout] test config::tests::test_load_config_invalid_yaml ... ok [INFO] [stdout] test config::tests::test_load_config_validation_error ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv_missing_locale ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv_special_characters ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value_empty ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value_carriage_return ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv ... ok [INFO] [stdout] test generator::csv::tests::test_escape_csv_value_newline ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_empty_file ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_invalid_header ... ok [INFO] [stdout] test config::tests::test_load_config_with_namespace ... ok [INFO] [stdout] test config::tests::test_load_config_with_analytics ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv_sorted_keys ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line ... ok [INFO] [stdout] test config::tests::test_load_config_with_overrides ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_empty_values ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_empty_cells ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_with_context ... ok [INFO] [stdout] test generator::csv::tests::test_generate_csv_with_context ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_mixed ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_unquoted ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_with_commas ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_line_with_quotes ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_cloud ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_embedded ... ok [INFO] [stdout] test generator::csv::tests::test_parse_csv_skip_empty_lines ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_hybrid ... ok [INFO] [stdout] test config::tests::test_create_default_overrides ... ok [INFO] [stdout] test config::tests::test_load_config_file_not_found ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_default_mode ... ok [INFO] [stdout] test generator::luau::test_analytics_disabled ... ok [INFO] [stdout] test generator::csv::tests::test_roundtrip_csv ... ok [INFO] [stdout] test generator::luau::test_analytics_with_custom_callback ... ok [INFO] [stdout] test generator::luau::test_generate_luau_with_full_config_multiple_locales ... ok [INFO] [stdout] test generator::luau::test_generate_method_cloud_simple ... ok [INFO] [stdout] test generator::luau::test_generate_method_cloud_with_analytics ... ok [INFO] [stdout] test generator::luau::test_generate_method_cloud_with_params ... ok [INFO] [stdout] test generator::luau::test_generate_method_embedded_simple ... ok [INFO] [stdout] test generator::luau::test_generate_method_embedded_with_analytics ... ok [INFO] [stdout] test generator::luau::test_generate_method_embedded_with_params ... ok [INFO] [stdout] test generator::luau::test_generate_method_hybrid_simple ... ok [INFO] [stdout] test generator::luau::test_generate_method_hybrid_with_analytics ... ok [INFO] [stdout] test generator::luau::test_generate_method_hybrid_with_params ... ok [INFO] [stdout] test generator::luau::test_analytics_generation ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_carriage_return ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_complex ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_backslashes ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_multiple_special_chars ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_newlines ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_basic ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_quotes ... ok [INFO] [stdout] test generator::luau::tests::test_escape_lua_string_tabs ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_escape_no_unescaped_special_chars ... ok [INFO] [stdout] test generator::luau::tests::test_extract_parameters ... ok [INFO] [stdout] test generator::luau::tests::test_extract_parameters_no_params ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_cloud_with_analytics ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_cloud_has_localization_service ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_embedded_no_localization_service ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_embedded_with_analytics ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_hybrid_optional_cloud ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_hybrid_with_analytics ... ok [INFO] [stdout] test generator::luau::tests::test_generate_constructor_server_safe ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_empty_locale ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_multiple_locales ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_escape_length_increases_or_stays_same ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_single_locale ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_sorted_keys ... ok [INFO] [stdout] test generator::luau::tests::test_generate_embedded_data_with_special_chars ... ok [INFO] [stdout] test generator::luau::tests::test_generate_flat_methods_with_plurals ... ok [INFO] [stdout] test generator::luau::tests::test_generate_luau_complete ... ok [INFO] [stdout] test generator::luau::tests::test_generate_namespace_with_plurals ... ok [INFO] [stdout] test generator::luau::tests::test_generate_with_format_specifiers ... ok [INFO] [stdout] test generator::types::tests::test_build_namespace_tree ... ok [INFO] [stdout] test generator::types::tests::test_generate_type_definitions_with_plurals ... ok [INFO] [stdout] test migrator::custom_json::tests::test_extract_translations_direct ... ok [INFO] [stdout] test migrator::custom_json::tests::test_extract_translations_pattern3 ... ok [INFO] [stdout] test migrator::custom_json::tests::test_migrate_custom_json ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_escape_idempotent_on_safe_strings ... ok [INFO] [stdout] test migrator::gettext::tests::test_extract_quoted_string ... ok [INFO] [stdout] test migrator::gettext::tests::test_migrate_gettext ... ok [INFO] [stdout] test migrator::custom_json::tests::test_extract_translations_pattern1 ... ok [INFO] [stdout] test migrator::gettext::tests::test_parse_po_file_multiline ... ok [INFO] [stdout] test migrator::gettext::tests::test_parse_po_file_simple ... ok [INFO] [stdout] test migrator::gettext::tests::test_parse_po_file_with_comments ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_empty ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_leading_underscore ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_multiple_underscores ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_no_underscores ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_dot_to_nested ... ok [INFO] [stdout] test migrator::key_transform::tests::test_snake_to_camel_trailing_underscore ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_empty ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_none ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_snake_to_camel ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_special_chars ... ok [INFO] [stdout] test parser::json::tests::test_flatten_deep_nested ... ok [INFO] [stdout] test parser::json::tests::test_flatten_simple ... ok [INFO] [stdout] test parser::overrides::tests::test_merge_translations ... ok [INFO] [stdout] test parser::types::tests::test_translation_clone ... ok [INFO] [stdout] test migrator::tests::test_migrate_with_transform ... ok [INFO] [stdout] test migrator::custom_json::tests::test_extract_translations_pattern2 ... ok [INFO] [stdout] test parser::types::tests::test_translation_creation ... ok [INFO] [stdout] test migrator::tests::test_migration_format_debug ... ok [INFO] [stdout] test migrator::tests::test_migrate_gettext ... ok [INFO] [stdout] test parser::overrides::tests::test_parse_overrides ... ok [INFO] [stdout] test migrator::tests::test_migrate_custom_json ... ok [INFO] [stdout] test parser::json::tests::test_flatten_nested ... ok [INFO] [stdout] test parser::json::tests::test_parse_json_file_structure ... ok [INFO] [stdout] test migrator::key_transform::tests::test_transform_key_upper_to_lower ... ok [INFO] [stdout] test parser::overrides::tests::test_parse_overrides_nonexistent_file ... ok [INFO] [stdout] test migrator::tests::test_key_transform_debug ... ok [INFO] [stdout] test parser::types::tests::test_translation_equality ... ok [INFO] [stdout] test parser::types::tests::test_translation_map ... ok [INFO] [stdout] test roblox::auth::tests::test_load_missing_api_key ... ok [INFO] [stdout] test roblox::auth::tests::test_validate_short_key ... ok [INFO] [stdout] test roblox::auth::tests::test_validate_valid_key ... ok [INFO] [stdout] test roblox::merge::tests::test_identical_translations ... ok [INFO] [stdout] test roblox::auth::tests::test_validate_empty_key ... ok [INFO] [stdout] test parser::types::tests::test_translation_with_context ... ok [INFO] [stdout] test parser::yaml::tests::test_parse_yaml_nested ... ok [INFO] [stdout] test roblox::auth::tests::test_load_from_config ... ok [INFO] [stdout] test roblox::client::tests::test_client_stores_api_key ... ok [INFO] [stdout] test parser::yaml::tests::test_parse_yaml_simple ... ok [INFO] [stdout] test roblox::merge::tests::test_merge_strategy ... ok [INFO] [stdout] test roblox::client::tests::test_client_has_correct_base_url ... ok [INFO] [stdout] test parser::yaml::tests::test_yaml_to_json_conversion ... ok [INFO] [stdout] test roblox::client::tests::test_client_creation_with_empty_key ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_default ... ok [INFO] [stdout] test roblox::merge::tests::test_overwrite_strategy ... ok [INFO] [stdout] test roblox::merge::tests::test_skip_conflicts_strategy ... ok [INFO] [stdout] test roblox::merge::tests::test_compute_diff ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_exponential_backoff ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_respects_retry_after ... ok [INFO] [stdout] test roblox::sync::tests::test_entries_to_translations ... ok [INFO] [stdout] test roblox::sync::tests::test_sync_orchestrator_new ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_success_first_try ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_entries ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_non_retryable_error ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_entries_with_context ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_map ... ok [INFO] [stdout] test roblox::sync::tests::test_entries_to_translations_multiple_locales ... ok [INFO] [stdout] test roblox::sync::tests::test_entries_to_translations_with_context ... ok [INFO] [stdout] test roblox::merge::tests::test_empty_diff ... ok [INFO] [stdout] test roblox::client::tests::test_client_creation ... ok [INFO] [stdout] test roblox::types::tests::test_cloud_config_with_values ... ok [INFO] [stdout] test roblox::types::tests::test_download_stats ... ok [INFO] [stdout] test roblox::types::tests::test_cloud_sync_error_display ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_map_multiple_keys ... ok [INFO] [stdout] test roblox::types::tests::test_get_table_entries_response_deserialization ... ok [INFO] [stdout] test roblox::types::tests::test_identifier_with_context ... ok [INFO] [stdout] test roblox::types::tests::test_cloud_config_defaults ... ok [INFO] [stdout] test roblox::types::tests::test_entry_metadata ... ok [INFO] [stdout] test roblox::sync::tests::test_translations_to_map_empty ... ok [INFO] [stdout] test roblox::types::tests::test_localization_entry_clone ... ok [INFO] [stdout] test roblox::types::tests::test_upload_stats ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_deep_nested ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_empty_object ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_with_prefix ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_non_string_values ... ok [INFO] [stdout] test roblox::types::tests::test_localization_entry_creation ... ok [INFO] [stdout] test roblox::types::tests::test_sync_stats ... ok [INFO] [stdout] test utils::flatten::tests::test_roundtrip ... ok [INFO] [stdout] test roblox::types::tests::test_translation_serialization ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_deep ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_single_key ... ok [INFO] [stdout] test utils::format::tests::test_extract_empty_braces ... ok [INFO] [stdout] test utils::format::tests::test_extract_all_specifier_types ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_translations ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_empty ... ok [INFO] [stdout] test utils::format::tests::test_extract_nested_braces ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten_multiple_roots ... ok [INFO] [stdout] test utils::format::tests::test_extract_multiple_same_param ... ok [INFO] [stdout] test utils::flatten::tests::test_unflatten ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_nested ... ok [INFO] [stdout] test utils::flatten::tests::test_flatten_simple ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_datetime ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_int ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_none ... ok [INFO] [stdout] test utils::format::tests::test_extract_no_parameters ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_num ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_translate ... ok [INFO] [stdout] test utils::format::tests::test_parse_no_specifier ... ok [INFO] [stdout] test utils::format::tests::test_extract_parameters_with_format ... ok [INFO] [stdout] test utils::format::tests::test_parse_datetime_specifier ... ok [INFO] [stdout] test utils::format::tests::test_parse_fixed_specifier ... ok [INFO] [stdout] test utils::format::tests::test_parse_format_specifier ... ok [INFO] [stdout] test utils::format::tests::test_generate_format_code_fixed ... ok [INFO] [stdout] test utils::format::tests::test_parse_num_specifier ... ok [INFO] [stdout] test utils::format::tests::test_parse_translate_specifier ... ok [INFO] [stdout] test utils::format::tests::test_parse_with_whitespace ... ok [INFO] [stdout] test utils::locales::tests::test_get_roblox_locales ... ok [INFO] [stdout] test utils::locales::tests::test_get_supported_locale_codes ... ok [INFO] [stdout] test utils::format::tests::test_parse_fixed_with_different_digits ... ok [INFO] [stdout] test utils::locales::tests_locale_detection::test_country_locale_map_coverage ... ok [INFO] [stdout] test utils::locales::tests::test_is_roblox_locale ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key_all_forms ... ok [INFO] [stdout] test utils::plurals::tests::test_is_plural_key ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key_empty ... ok [INFO] [stdout] test utils::format::tests::test_parse_invalid_fixed_defaults_to_2 ... ok [INFO] [stdout] test utils::plurals::tests::test_is_plural_key_nested ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key_no_plural ... ok [INFO] [stdout] test utils::plurals::tests::test_is_plural_key_all_forms ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key_nested_parentheses ... ok [INFO] [stdout] test utils::format::tests::test_parse_unknown_specifier ... ok [INFO] [stdout] test utils::locales::tests_locale_detection::test_get_locale_for_country ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_invalid_namespace_chars ... ok [INFO] [stdout] test utils::plurals::tests::test_extract_base_key ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_invalid_supported_locale ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_valid ... ok [INFO] [stdout] test utils::plurals::tests::test_is_plural_key_false_cases ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_path_traversal ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_namespace_starts_with_digit ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_with_namespace ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_empty ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_invalid_chars ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_invalid_format ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_uppercase ... ok [INFO] [stdout] test utils::validation::tests::test_validate_locale_code_valid ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_invalid_base_locale ... ok [INFO] [stdout] test utils::validation::tests::test_validate_config_empty_namespace ... ok [INFO] [stdout] test utils::validation::tests::test_validate_safe_path_double_dot ... ok [INFO] [stdout] test utils::validation::tests::test_validate_safe_path_valid ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_consecutive_dots ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_empty ... ok [INFO] [stdout] test utils::validation::tests::test_validate_safe_path_traversal ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_leading_dot ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_reserved_chars ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_trailing_dot ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_valid ... ok [INFO] [stdout] test utils::validation::tests::test_validate_translation_key_whitespace ... ok [INFO] [stdout] test validator::conflicts::tests::test_detect_conflicts ... ok [INFO] [stdout] test validator::conflicts::tests::test_no_conflicts ... ok [INFO] [stdout] test validator::conflicts::tests::test_triple_duplicate ... ok [INFO] [stdout] test validator::conflicts::tests::test_empty_translations ... ok [INFO] [stdout] test validator::coverage::tests::test_generate_coverage_report ... ok [INFO] [stdout] test validator::missing::tests::test_base_locale_only ... ok [INFO] [stdout] test validator::missing::tests::test_empty_translations ... ok [INFO] [stdout] test validator::conflicts::tests::test_same_key_different_locales_no_conflict ... ok [INFO] [stdout] test validator::missing::tests::test_extra_keys_in_non_base_locale ... ok [INFO] [stdout] test validator::missing::tests::test_multiple_locales_missing_keys ... ok [INFO] [stdout] test validator::missing::tests::test_no_missing_keys ... ok [INFO] [stdout] test validator::tests::test_coverage_info_clone ... ok [INFO] [stdout] test validator::tests::test_coverage_info_creation ... ok [INFO] [stdout] test validator::missing::tests::test_detect_missing_keys ... ok [INFO] [stdout] test validator::conflicts::tests::test_multiple_conflicts ... ok [INFO] [stdout] test validator::tests::test_coverage_info_debug ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys_nonexistent_dir ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys_all_used ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys_empty_keys ... ok [INFO] [stdout] test validator::unused::tests::test_detect_unused_keys_single_quotes ... ok [INFO] [stdout] test validator::unused::tests::test_find_lua_files ... ok [INFO] [stdout] test validator::unused::tests::test_find_lua_files_nested ... ok [INFO] [stdout] test validator::unused::tests::test_find_lua_files_single_file ... ok [INFO] [stdout] test validator::unused::tests::test_find_lua_files_non_lua_file ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_escape_preserves_safe_characters ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_embedded_data_all_locales_present ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_retry_then_success ... ok [INFO] [stdout] test roblox::rate_limit::tests::test_rate_limiter_max_retries_exceeded ... ok [INFO] [stdout] test generator::luau::tests::property_tests::prop_embedded_data_completeness ... ok [INFO] [stderr] Doc-tests roblox_slang [INFO] [stdout] [INFO] [stdout] test result: ok. 286 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.86s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test src/utils/validation.rs - utils::validation::validate_config (line 421) - compile ... ok [INFO] [stdout] test src/roblox/auth.rs - roblox::auth::AuthConfig::load (line 60) - compile ... ok [INFO] [stdout] test src/lib.rs - (line 34) - compile ... ok [INFO] [stdout] test src/utils/validation.rs - utils::validation::validate_directory_exists (line 304) - compile ... ok [INFO] [stdout] test src/roblox/client.rs - roblox::client::RobloxCloudClient (line 19) - compile ... ok [INFO] [stdout] test src/roblox/sync.rs - roblox::sync::SyncOrchestrator::sync (line 273) - compile ... ok [INFO] [stdout] test src/roblox/rate_limit.rs - roblox::rate_limit::RateLimiter::execute (line 58) - compile ... ok [INFO] [stdout] test src/roblox/sync.rs - roblox::sync::SyncOrchestrator::download (line 155) - compile ... ok [INFO] [stdout] test src/roblox/auth.rs - roblox::auth::AuthConfig (line 17) - compile ... ok [INFO] [stdout] test src/utils/validation.rs - utils::validation::validate_file_exists (line 245) - compile ... ok [INFO] [stdout] test src/roblox/sync.rs - roblox::sync::SyncOrchestrator (line 20) - compile ... ok [INFO] [stdout] test src/roblox/sync.rs - roblox::sync::SyncOrchestrator::upload (line 77) - compile ... ok [INFO] [stdout] test src/roblox/mod.rs - roblox (line 36) - compile ... ok [INFO] [stdout] test src/utils/validation.rs - utils::validation::validate_locale_code (line 28) ... ok [INFO] [stdout] test src/generator/luau.rs - generator::luau::escape_lua_string (line 978) ... ok [INFO] [stdout] test src/roblox/merge.rs - roblox::merge::MergeEngine::apply_strategy (line 146) ... ok [INFO] [stdout] test src/roblox/merge.rs - roblox::merge::MergeEngine::compute_diff (line 68) ... ok [INFO] [stdout] test src/utils/validation.rs - utils::validation::validate_translation_key (line 156) ... ok [INFO] [stdout] test src/roblox/rate_limit.rs - roblox::rate_limit::RateLimiter::new (line 31) ... ok [INFO] [stdout] test src/utils/validation.rs - utils::validation::validate_safe_path (line 362) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.06s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "739bb8bebf199e0d0455419a3eaf74b6fe530e249d9fe47c7e5ca16a3e89a869", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "739bb8bebf199e0d0455419a3eaf74b6fe530e249d9fe47c7e5ca16a3e89a869", kill_on_drop: false }` [INFO] [stdout] 739bb8bebf199e0d0455419a3eaf74b6fe530e249d9fe47c7e5ca16a3e89a869