diff --git a/Cargo.lock b/Cargo.lock index a41f89573..9913ef71e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5674,7 +5674,6 @@ dependencies = [ "thiserror 1.0.69", "ucd-trie", "unicode-segmentation", - "varbincode", "vtparse", "wezterm-bidi", "wezterm-blob-leases", diff --git a/Makefile b/Makefile index a0a4659a8..a43c664b7 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ all: build test: cargo nextest run + cargo nextest run -p wezterm-escape-parser # no_std by default check: cargo check diff --git a/color-types/src/lib.rs b/color-types/src/lib.rs index bc32223da..5bac168f0 100644 --- a/color-types/src/lib.rs +++ b/color-types/src/lib.rs @@ -5,6 +5,7 @@ use core::str::FromStr; #[cfg(feature = "std")] use csscolorparser::Color; #[cfg(not(feature = "std"))] +#[allow(unused)] use num_traits::float::Float; #[cfg(feature = "use_serde")] use serde::{Deserialize, Serialize}; diff --git a/termwiz/Cargo.toml b/termwiz/Cargo.toml index 7a8d94d47..1f900580b 100644 --- a/termwiz/Cargo.toml +++ b/termwiz/Cargo.toml @@ -58,8 +58,6 @@ docs = ["widgets", "use_serde", "image", "tmux_cc"] criterion.workspace = true env_logger.workspace = true k9.workspace = true -varbincode.workspace = true - [target."cfg(unix)".dependencies] signal-hook.workspace = true diff --git a/termwiz/src/color.rs b/termwiz/src/color.rs index d41992aca..7eb51768b 100644 --- a/termwiz/src/color.rs +++ b/termwiz/src/color.rs @@ -47,39 +47,3 @@ impl From for ColorAttribute { } } } - -#[cfg(test)] -mod tests { - use super::*; - #[test] - fn from_hsl() { - let foo = RgbColor::from_rgb_str("hsl:235 100 50").unwrap(); - assert_eq!(foo.to_rgb_string(), "#0015ff"); - } - - #[test] - fn from_rgb() { - assert!(RgbColor::from_rgb_str("").is_none()); - assert!(RgbColor::from_rgb_str("#xyxyxy").is_none()); - - let black = RgbColor::from_rgb_str("#FFF").unwrap(); - assert_eq!(black.to_tuple_rgb8(), (0xf0, 0xf0, 0xf0)); - - let black = RgbColor::from_rgb_str("#000000").unwrap(); - assert_eq!(black.to_tuple_rgb8(), (0, 0, 0)); - - let grey = RgbColor::from_rgb_str("rgb:D6/D6/D6").unwrap(); - assert_eq!(grey.to_tuple_rgb8(), (0xd6, 0xd6, 0xd6)); - - let grey = RgbColor::from_rgb_str("rgb:f0f0/f0f0/f0f0").unwrap(); - assert_eq!(grey.to_tuple_rgb8(), (0xf0, 0xf0, 0xf0)); - } - - #[cfg(feature = "use_serde")] - #[test] - fn roundtrip_rgbcolor() { - let data = varbincode::serialize(&RgbColor::from_named("DarkGreen").unwrap()).unwrap(); - eprintln!("serialized as {:?}", data); - let _decoded: RgbColor = varbincode::deserialize(data.as_slice()).unwrap(); - } -} diff --git a/wezterm-dynamic/src/value.rs b/wezterm-dynamic/src/value.rs index 60ae192c2..853099f3f 100644 --- a/wezterm-dynamic/src/value.rs +++ b/wezterm-dynamic/src/value.rs @@ -1,5 +1,6 @@ use crate::array::Array; use crate::object::Object; +#[allow(unused)] #[cfg(not(feature = "std"))] use ordered_float::FloatCore; use ordered_float::OrderedFloat; diff --git a/wezterm-escape-parser/Cargo.toml b/wezterm-escape-parser/Cargo.toml index 9f1438090..1b9b7c185 100644 --- a/wezterm-escape-parser/Cargo.toml +++ b/wezterm-escape-parser/Cargo.toml @@ -31,7 +31,7 @@ wezterm-dynamic.workspace = true wezterm-input-types = {workspace = true, default-features=false} [features] -std = ["vtparse/std", "thiserror/std", "wezterm-input-types/std", "hex/std"] +std = ["vtparse/std", "thiserror/std", "wezterm-input-types/std", "hex/std", "wezterm-dynamic/std"] kitty-shm = ["dep:nix"] use_serde = ["dep:serde", "wezterm-color-types/use_serde", "wezterm-blob-leases/serde", "bitflags/serde", "wezterm-input-types/serde"] use_image = ["image", "dep:image"] diff --git a/wezterm-escape-parser/src/color.rs b/wezterm-escape-parser/src/color.rs index ee8e18264..03c5e87b9 100644 --- a/wezterm-escape-parser/src/color.rs +++ b/wezterm-escape-parser/src/color.rs @@ -254,3 +254,31 @@ impl From for ColorSpec { ColorSpec::TrueColor(col) } } + +#[cfg(test)] +mod tests { + use super::*; + #[test] + fn from_hsl() { + let foo = RgbColor::from_rgb_str("hsl:235 100 50").unwrap(); + assert_eq!(foo.to_rgb_string(), "#0015ff"); + } + + #[test] + fn from_rgb() { + assert!(RgbColor::from_rgb_str("").is_none()); + assert!(RgbColor::from_rgb_str("#xyxyxy").is_none()); + + let black = RgbColor::from_rgb_str("#FFF").unwrap(); + assert_eq!(black.to_tuple_rgb8(), (0xf0, 0xf0, 0xf0)); + + let black = RgbColor::from_rgb_str("#000000").unwrap(); + assert_eq!(black.to_tuple_rgb8(), (0, 0, 0)); + + let grey = RgbColor::from_rgb_str("rgb:D6/D6/D6").unwrap(); + assert_eq!(grey.to_tuple_rgb8(), (0xd6, 0xd6, 0xd6)); + + let grey = RgbColor::from_rgb_str("rgb:f0f0/f0f0/f0f0").unwrap(); + assert_eq!(grey.to_tuple_rgb8(), (0xf0, 0xf0, 0xf0)); + } +} diff --git a/wezterm-escape-parser/src/csi.rs b/wezterm-escape-parser/src/csi.rs index 08bf18b52..ffa46ad3c 100644 --- a/wezterm-escape-parser/src/csi.rs +++ b/wezterm-escape-parser/src/csi.rs @@ -144,14 +144,14 @@ pub enum CSI { #[cfg(all(test, target_pointer_width = "64"))] #[test] fn csi_size() { - assert_eq!(std::mem::size_of::(), 24); - assert_eq!(std::mem::size_of::(), 12); - assert_eq!(std::mem::size_of::(), 8); - assert_eq!(std::mem::size_of::(), 24); - assert_eq!(std::mem::size_of::(), 8); - assert_eq!(std::mem::size_of::(), 40); - assert_eq!(std::mem::size_of::(), 8); - assert_eq!(std::mem::size_of::(), 32); + assert_eq!(core::mem::size_of::(), 24); + assert_eq!(core::mem::size_of::(), 12); + assert_eq!(core::mem::size_of::(), 8); + assert_eq!(core::mem::size_of::(), 24); + assert_eq!(core::mem::size_of::(), 8); + assert_eq!(core::mem::size_of::(), 40); + assert_eq!(core::mem::size_of::(), 8); + assert_eq!(core::mem::size_of::(), 32); } pub use wezterm_input_types::KittyKeyboardFlags; @@ -1488,11 +1488,11 @@ pub enum Sgr { #[cfg(all(test, target_pointer_width = "64"))] #[test] fn sgr_size() { - assert_eq!(std::mem::size_of::(), 1); - assert_eq!(std::mem::size_of::(), 1); - assert_eq!(std::mem::size_of::(), 20); - assert_eq!(std::mem::size_of::(), 1); - assert_eq!(std::mem::size_of::(), 2); + assert_eq!(core::mem::size_of::(), 1); + assert_eq!(core::mem::size_of::(), 1); + assert_eq!(core::mem::size_of::(), 20); + assert_eq!(core::mem::size_of::(), 1); + assert_eq!(core::mem::size_of::(), 2); } impl Display for Sgr { @@ -2977,7 +2977,7 @@ impl<'a> Iterator for CSIParser<'a> { } } -#[cfg(test)] +#[cfg(all(test, feature = "std"))] mod test { use super::*; use std::io::Write; @@ -2991,8 +2991,7 @@ mod test { cparams.push(CsiParam::Integer(p)); } let res = CSI::parse(&cparams, false, control).collect(); - println!("parsed -> {:#?}", res); - assert_eq!(encode(&res), expected); + assert_eq!(encode(&res), expected, "parsed -> {res:?}"); res } diff --git a/wezterm-escape-parser/src/esc.rs b/wezterm-escape-parser/src/esc.rs index 16128c159..b4f20140c 100644 --- a/wezterm-escape-parser/src/esc.rs +++ b/wezterm-escape-parser/src/esc.rs @@ -171,6 +171,7 @@ impl Display for Esc { #[cfg(test)] mod test { use super::*; + use alloc::string::String; fn encode(osc: &Esc) -> String { format!("{}", osc) diff --git a/wezterm-escape-parser/src/lib.rs b/wezterm-escape-parser/src/lib.rs index 70b5f0ef9..2b35b0e0f 100644 --- a/wezterm-escape-parser/src/lib.rs +++ b/wezterm-escape-parser/src/lib.rs @@ -90,11 +90,11 @@ impl Action { #[cfg(all(test, target_pointer_width = "64"))] #[test] fn action_size() { - assert_eq!(std::mem::size_of::(), 32); - assert_eq!(std::mem::size_of::(), 16); - assert_eq!(std::mem::size_of::(), 1); - assert_eq!(std::mem::size_of::(), 32); - assert_eq!(std::mem::size_of::(), 4); + assert_eq!(core::mem::size_of::(), 32); + assert_eq!(core::mem::size_of::(), 16); + assert_eq!(core::mem::size_of::(), 1); + assert_eq!(core::mem::size_of::(), 32); + assert_eq!(core::mem::size_of::(), 4); } /// Encode self as an escape sequence. The escape sequence may potentially diff --git a/wezterm-escape-parser/src/parser/mod.rs b/wezterm-escape-parser/src/parser/mod.rs index d619c4cb5..9129764df 100644 --- a/wezterm-escape-parser/src/parser/mod.rs +++ b/wezterm-escape-parser/src/parser/mod.rs @@ -346,7 +346,7 @@ impl<'a, F: FnMut(Action)> VTActor for Performer<'a, F> { } } -#[cfg(test)] +#[cfg(all(test, feature = "std"))] mod test { use super::*; use crate::color::ColorSpec; @@ -740,16 +740,14 @@ mod test { fn round_trip_parse(s: &str) -> Vec { let mut p = Parser::new(); let actions = p.parse_as_vec(s.as_bytes()); - println!("actions: {:?}", actions); - assert_eq!(s, encode(&actions)); + assert_eq!(s, encode(&actions), "actions: {actions:?}"); actions } fn parse_as(s: &str, expected: &str) -> Vec { let mut p = Parser::new(); let actions = p.parse_as_vec(s.as_bytes()); - println!("actions: {:?}", actions); - assert_eq!(expected, encode(&actions)); + assert_eq!(expected, encode(&actions), "actions: {actions:?}"); actions } diff --git a/wezterm-escape-parser/src/parser/sixel.rs b/wezterm-escape-parser/src/parser/sixel.rs index 5011f0bcf..ce5c9e609 100644 --- a/wezterm-escape-parser/src/parser/sixel.rs +++ b/wezterm-escape-parser/src/parser/sixel.rs @@ -190,6 +190,7 @@ mod test { use super::*; use crate::parser::Parser; use crate::{Action, Esc, EscCode}; + use alloc::boxed::Box; use k9::assert_equal as assert_eq; #[test]