diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16d0847..016d224 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,6 +104,10 @@ jobs: mv siblings/rusty-testkit ../rusty-testkit mv siblings/rusty-ultraviolet ../rusty-ultraviolet mv siblings/rusty-x-ansi ../rusty-x-ansi + - name: Verify sibling dependency source identity + run: | + cargo tree --package rusty-bubbletea --invert rusty-colorprofile@0.4.3 + cargo tree --package rusty-bubbletea --invert rusty-x-ansi@0.11.7 - name: Format run: cargo fmt --all --check - name: Lint diff --git a/Cargo.toml b/Cargo.toml index ab15af6..2df8537 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,12 @@ rusty-bubbles = { version = "2.1.0", path = "../rusty-bubbles" } [target.'cfg(unix)'.dev-dependencies] rusty-testkit = { version = "0.1.1", path = "../rusty-testkit" } +[patch.crates-io] +# Root patches are required because Cargo ignores patch sections declared by +# dependencies such as rusty-ultraviolet. Keep every sibling edge on one source. +rusty-colorprofile = { path = "../rusty-colorprofile" } +rusty-x-ansi = { path = "../rusty-x-ansi" } + [lib] name = "rusty_bubbletea" path = "src/lib.rs" diff --git a/UPSTREAM_MAPPING.md b/UPSTREAM_MAPPING.md index afe1e76..8af2b48 100644 --- a/UPSTREAM_MAPPING.md +++ b/UPSTREAM_MAPPING.md @@ -161,7 +161,7 @@ byte-for-byte. | `tutorials/basics/main.go` | `examples/tutorial_basics.rs` | Tutorial: counter; quits on 'q' | | `tutorials/commands/main.go` | `examples/tutorial_commands.rs` | Tutorial: commands; quits on 'q' | -Rust-only portability regression coverage is maintained in `tests/windows_platform.rs`; it +Rust-only portability regression coverage is maintained in `tests/windows_tty.rs`; it exercises the Windows raw-mode and terminal-restoration boundary that has no standalone upstream Go test file. The PTY-driven `tests/interactive.rs` suite remains Unix-gated because its real pseudo-terminal dependency is intentionally not claimed as native Windows support. diff --git a/tests/interactive.rs b/tests/interactive.rs index 2a4dd8a..546e80d 100644 --- a/tests/interactive.rs +++ b/tests/interactive.rs @@ -9,8 +9,6 @@ //! interactive behavior (typing, navigating, mouse clicks) that a byte-level //! key-sweep cannot. -#![cfg(unix)] - use rusty_testkit::PtySession; /// The package's Cargo target directory. `cargo metadata` is authoritative: diff --git a/tests/windows_platform.rs b/tests/windows_platform.rs deleted file mode 100644 index 9063f1f..0000000 --- a/tests/windows_platform.rs +++ /dev/null @@ -1,17 +0,0 @@ -#![cfg(windows)] - -//! Windows regression coverage for the compile-safe terminal boundary. - -use rusty_bubbletea::tty::{disable_raw_mode, enable_raw_mode, init_terminal, restore_terminal}; - -#[test] -fn raw_mode_operations_are_safe_no_ops_on_windows() { - enable_raw_mode().expect("Windows raw-mode fallback should succeed"); - disable_raw_mode().expect("Windows raw-mode restoration fallback should succeed"); -} - -#[test] -fn terminal_lifecycle_uses_the_same_windows_boundary() { - init_terminal().expect("Windows terminal initialization fallback should succeed"); - restore_terminal().expect("Windows terminal restoration fallback should succeed"); -}