From 3f927cb968653dd2efcfb1d858c19e5a7927d48c Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 9 Mar 2023 01:23:07 -0500 Subject: bump deps --- Cargo.toml | 12 ++++++------ tests/quickcheck.rs | 38 ++++++++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ae8f3d3..7e03fc9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,16 +14,16 @@ license = "MIT" include = ["src/**/*", "LICENSE", "README.md", "CHANGELOG.md"] [dependencies] -itoa = "1.0.5" +itoa = "1.0.6" log = "0.4.17" unicode-width = "0.1.10" vte = "0.11.0" [dev-dependencies] nix = "0.26.2" -quickcheck = "0.9" -rand = "0.7" -serde = { version = "1.0.152", features = ["derive"] } -serde_json = "1.0.92" -terminal_size = "0.2.3" +quickcheck = "1.0" +rand = "0.8" +serde = { version = "1.0.154", features = ["derive"] } +serde_json = "1.0.94" +terminal_size = "0.2.5" vte = "0.11.0" diff --git a/tests/quickcheck.rs b/tests/quickcheck.rs index 3591285..5610934 100644 --- a/tests/quickcheck.rs +++ b/tests/quickcheck.rs @@ -1,15 +1,26 @@ -use rand::Rng as _; +use quickcheck::Arbitrary as _; mod helpers; #[derive(Clone, Debug)] struct TerminalInput(Vec); +fn gen_range(gen: &mut quickcheck::Gen, range: std::ops::Range) -> T +where + T: Copy, + T: quickcheck::Arbitrary, + T: std::ops::Add + + std::ops::Rem + + std::ops::Sub, +{ + T::arbitrary(gen) % (range.end - range.start) + range.start +} + impl quickcheck::Arbitrary for TerminalInput { - fn arbitrary(g: &mut G) -> Self { + fn arbitrary(g: &mut quickcheck::Gen) -> Self { let size = { let s = g.size(); - g.gen_range(0, s) + gen_range(g, 0..s) }; TerminalInput( (0..size) @@ -23,7 +34,8 @@ impl quickcheck::Arbitrary for TerminalInput { } } -fn choose_terminal_input_fragment(g: &mut G) -> Vec { +fn choose_terminal_input_fragment(g: &mut quickcheck::Gen) -> Vec { + #[derive(Clone)] enum Fragment { Text, Control, @@ -35,11 +47,9 @@ fn choose_terminal_input_fragment(g: &mut G) -> Vec { Dcs, } - impl rand::distributions::Distribution - for rand::distributions::Standard - { - fn sample(&self, rng: &mut R) -> Fragment { - match rng.gen() { + impl quickcheck::Arbitrary for Fragment { + fn arbitrary(g: &mut quickcheck::Gen) -> Self { + match u8::arbitrary(g) { 0u8..=231 => Fragment::Text, 232..=239 => Fragment::Control, 240..=247 => Fragment::Escape, @@ -48,9 +58,9 @@ fn choose_terminal_input_fragment(g: &mut G) -> Vec { } } - match g.gen() { + match Fragment::arbitrary(g) { Fragment::Text => { - let mut u: u32 = g.gen_range(32, 2u32.pow(20) - 2048); + let mut u: u32 = gen_range(g, 32..(2u32.pow(20) - 2048)); // surrogates aren't valid codepoints on their own if u >= 0xD800 { u += 2048; @@ -64,17 +74,17 @@ fn choose_terminal_input_fragment(g: &mut G) -> Vec { let s = c.encode_utf8(&mut b); (*s).to_string().into_bytes() } - Fragment::Control => vec![g.gen_range(7, 14)], + Fragment::Control => vec![gen_range(g, 7..14)], Fragment::Escape => { let mut v = vec![0x1b]; - let c = g.gen_range(b'0', b'~'); + let c = gen_range(g, b'0'..b'~'); v.push(c); v } Fragment::Csi => { let mut v = vec![0x1b, b'[']; // TODO: params - let c = g.gen_range(b'@', b'~'); + let c = gen_range(g, b'@'..b'~'); v.push(c); v } -- cgit v1.2.3-54-g00ecf