aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock85
-rw-r--r--Cargo.toml8
-rw-r--r--niri-config/Cargo.toml2
-rw-r--r--niri-config/src/lib.rs6
-rw-r--r--src/dbus/mutter_display_config.rs12
-rw-r--r--src/utils/scale.rs46
6 files changed, 84 insertions, 75 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 37d93bfe..eb071563 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -715,16 +715,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
[[package]]
-name = "colored"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
-dependencies = [
- "lazy_static",
- "windows-sys 0.48.0",
-]
-
-[[package]]
name = "combine"
version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -744,6 +734,18 @@ dependencies = [
]
[[package]]
+name = "console"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b"
+dependencies = [
+ "encode_unicode",
+ "libc",
+ "once_cell",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
name = "convert_case"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1019,6 +1021,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
+name = "encode_unicode"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
+
+[[package]]
name = "enumflags2"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1879,6 +1887,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd4f5b4d1c00331c5245163aacfe5f20be75b564c7112d45893d4ae038119eb0"
[[package]]
+name = "insta"
+version = "1.41.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e9ffc4d4892617c50a928c52b2961cb5174b6fc6ebf252b2fac9d21955c48b8"
+dependencies = [
+ "console",
+ "lazy_static",
+ "linked-hash-map",
+ "similar",
+]
+
+[[package]]
name = "instant"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1983,23 +2003,6 @@ dependencies = [
]
[[package]]
-name = "k9"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "088bcebb5b68b1b14b64d7f05b0f802719250b97fdc0338ec42529ea777ed614"
-dependencies = [
- "anyhow",
- "colored",
- "diff",
- "lazy_static",
- "libc",
- "proc-macro2",
- "regex",
- "syn 2.0.86",
- "terminal_size 0.2.6",
-]
-
-[[package]]
name = "keyframe"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2204,6 +2207,12 @@ dependencies = [
]
[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
name = "linux-raw-sys"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2325,7 +2334,7 @@ dependencies = [
"supports-color",
"supports-hyperlinks",
"supports-unicode",
- "terminal_size 0.1.17",
+ "terminal_size",
"textwrap",
"thiserror",
"unicode-width",
@@ -2409,7 +2418,7 @@ dependencies = [
"git-version",
"glam",
"input",
- "k9",
+ "insta",
"keyframe",
"libc",
"libdisplay-info",
@@ -2448,7 +2457,7 @@ version = "0.1.10"
dependencies = [
"bitflags 2.6.0",
"csscolorparser",
- "k9",
+ "insta",
"knuffel",
"miette",
"niri-ipc",
@@ -3629,6 +3638,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
[[package]]
+name = "similar"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
+
+[[package]]
name = "siphasher"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3900,16 +3915,6 @@ dependencies = [
]
[[package]]
-name = "terminal_size"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
-dependencies = [
- "rustix 0.37.27",
- "windows-sys 0.48.0",
-]
-
-[[package]]
name = "textwrap"
version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/Cargo.toml b/Cargo.toml
index da1df76d..83f0cbbf 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -14,7 +14,7 @@ rust-version = "1.80"
anyhow = "1.0.93"
bitflags = "2.6.0"
clap = { version = "4.5.20", features = ["derive"] }
-k9 = "0.12.0"
+insta = "1.41.1"
serde = { version = "1.0.214", features = ["derive"] }
serde_json = "1.0.132"
tracing = { version = "0.1.40", features = ["max_level_trace", "release_max_level_debug"] }
@@ -107,7 +107,7 @@ features = [
[dev-dependencies]
approx = "0.5.1"
-k9.workspace = true
+insta.workspace = true
proptest = "1.5.0"
proptest-derive = { version = "0.5.0", features = ["boxed_union"] }
xshell = "0.2.6"
@@ -138,6 +138,10 @@ lto = "thin"
# knuffel with chomsky generates a metric ton of debuginfo.
debug = false
+[profile.dev.package]
+insta.opt-level = 3
+similar.opt-level = 3
+
[package.metadata.generate-rpm]
version = "0.1.10"
assets = [
diff --git a/niri-config/Cargo.toml b/niri-config/Cargo.toml
index 6ac81717..633690da 100644
--- a/niri-config/Cargo.toml
+++ b/niri-config/Cargo.toml
@@ -19,6 +19,6 @@ tracing.workspace = true
tracy-client.workspace = true
[dev-dependencies]
-k9.workspace = true
+insta.workspace = true
miette = { version = "5.10.0", features = ["fancy"] }
pretty_assertions = "1.4.1"
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs
index a7ac89d2..8ef4d869 100644
--- a/niri-config/src/lib.rs
+++ b/niri-config/src/lib.rs
@@ -2933,7 +2933,7 @@ pub fn set_miette_hook() -> Result<(), miette::InstallError> {
#[cfg(test)]
mod tests {
- use k9::snapshot;
+ use insta::assert_debug_snapshot;
use pretty_assertions::assert_eq;
use super::*;
@@ -3833,9 +3833,9 @@ mod tests {
)
})
.collect::<Vec<_>>();
- snapshot!(
+ assert_debug_snapshot!(
names,
- r#"
+ @r#"
[
"Unknown A A | DP-3",
"A Unknown A | DP-3",
diff --git a/src/dbus/mutter_display_config.rs b/src/dbus/mutter_display_config.rs
index 6de56b70..b6df149c 100644
--- a/src/dbus/mutter_display_config.rs
+++ b/src/dbus/mutter_display_config.rs
@@ -212,16 +212,16 @@ fn format_diagonal(diagonal_inches: f64) -> String {
#[cfg(test)]
mod tests {
- use k9::snapshot;
+ use insta::assert_snapshot;
use super::*;
#[test]
fn test_format_diagonal() {
- snapshot!(format_diagonal(12.11), "12.1″");
- snapshot!(format_diagonal(13.28), "13.3″");
- snapshot!(format_diagonal(15.6), "15.6″");
- snapshot!(format_diagonal(23.2), "23″");
- snapshot!(format_diagonal(24.8), "25″");
+ assert_snapshot!(format_diagonal(12.11), @"12.1″");
+ assert_snapshot!(format_diagonal(13.28), @"13.3″");
+ assert_snapshot!(format_diagonal(15.6), @"15.6″");
+ assert_snapshot!(format_diagonal(23.2), @"23″");
+ assert_snapshot!(format_diagonal(24.8), @"25″");
}
}
diff --git a/src/utils/scale.rs b/src/utils/scale.rs
index 13337704..ff89b4cb 100644
--- a/src/utils/scale.rs
+++ b/src/utils/scale.rs
@@ -59,7 +59,7 @@ pub fn closest_representable_scale(scale: f64) -> f64 {
#[cfg(test)]
mod tests {
- use k9::snapshot;
+ use insta::assert_snapshot;
use super::*;
@@ -70,37 +70,37 @@ mod tests {
#[test]
fn test_guess_monitor_scale() {
// Librem 5; not enough logical area when scaled
- snapshot!(check((65, 129), (720, 1440)), "1.5");
+ assert_snapshot!(check((65, 129), (720, 1440)), @"1.5");
// OnePlus 6
- snapshot!(check((68, 144), (1080, 2280)), "2.5");
+ assert_snapshot!(check((68, 144), (1080, 2280)), @"2.5");
// Google Pixel 6a
- snapshot!(check((64, 142), (1080, 2400)), "2.5");
+ assert_snapshot!(check((64, 142), (1080, 2400)), @"2.5");
// 13" MacBook Retina
- snapshot!(check((286, 179), (2560, 1600)), "1.75");
+ assert_snapshot!(check((286, 179), (2560, 1600)), @"1.75");
// Surface Laptop Studio
- snapshot!(check((303, 202), (2400, 1600)), "1.5");
+ assert_snapshot!(check((303, 202), (2400, 1600)), @"1.5");
// Dell XPS 9320
- snapshot!(check((290, 180), (3840, 2400)), "2.5");
+ assert_snapshot!(check((290, 180), (3840, 2400)), @"2.5");
// Lenovo ThinkPad X1 Yoga Gen 6
- snapshot!(check((300, 190), (3840, 2400)), "2.5");
+ assert_snapshot!(check((300, 190), (3840, 2400)), @"2.5");
// Generic 23" 1080p
- snapshot!(check((509, 286), (1920, 1080)), "1.0");
+ assert_snapshot!(check((509, 286), (1920, 1080)), @"1");
// Generic 23" 4K
- snapshot!(check((509, 286), (3840, 2160)), "1.75");
+ assert_snapshot!(check((509, 286), (3840, 2160)), @"1.75");
// Generic 27" 4K
- snapshot!(check((598, 336), (3840, 2160)), "1.5");
+ assert_snapshot!(check((598, 336), (3840, 2160)), @"1.5");
// Generic 32" 4K
- snapshot!(check((708, 398), (3840, 2160)), "1.25");
+ assert_snapshot!(check((708, 398), (3840, 2160)), @"1.25");
// Generic 25" 4K; ideal scale is 1.60, should round to 1.5 and 1.0
- snapshot!(check((554, 312), (3840, 2160)), "1.5");
+ assert_snapshot!(check((554, 312), (3840, 2160)), @"1.5");
// Generic 23.5" 4K; ideal scale is 1.70, should round to 1.75 and 2.0
- snapshot!(check((522, 294), (3840, 2160)), "1.75");
+ assert_snapshot!(check((522, 294), (3840, 2160)), @"1.75");
// Lenovo Legion 7 Gen 7 AMD 16"
- snapshot!(check((340, 210), (2560, 1600)), "1.5");
+ assert_snapshot!(check((340, 210), (2560, 1600)), @"1.5");
// Acer Nitro XV320QU LV 31.5"
- snapshot!(check((700, 390), (2560, 1440)), "1.0");
+ assert_snapshot!(check((700, 390), (2560, 1440)), @"1");
// Surface Pro 6
- snapshot!(check((260, 170), (2736, 1824)), "2.0");
+ assert_snapshot!(check((260, 170), (2736, 1824)), @"2");
}
#[test]
@@ -110,11 +110,11 @@ mod tests {
#[test]
fn test_round_scale() {
- snapshot!(closest_representable_scale(1.3), "1.3");
- snapshot!(closest_representable_scale(1.31), "1.3083333333333333");
- snapshot!(closest_representable_scale(1.32), "1.3166666666666667");
- snapshot!(closest_representable_scale(1.33), "1.3333333333333333");
- snapshot!(closest_representable_scale(1.34), "1.3416666666666666");
- snapshot!(closest_representable_scale(1.35), "1.35");
+ assert_snapshot!(closest_representable_scale(1.3), @"1.3");
+ assert_snapshot!(closest_representable_scale(1.31), @"1.3083333333333333");
+ assert_snapshot!(closest_representable_scale(1.32), @"1.3166666666666667");
+ assert_snapshot!(closest_representable_scale(1.33), @"1.3333333333333333");
+ assert_snapshot!(closest_representable_scale(1.34), @"1.3416666666666666");
+ assert_snapshot!(closest_representable_scale(1.35), @"1.35");
}
}