Skip to content

Commit ae0dc61

Browse files
committed
fuzz: adapt to API changes of rand
1 parent 5276022 commit ae0dc61

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

fuzz/fuzz_targets/fuzz_common.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
use libc::STDIN_FILENO;
77
use libc::{close, dup, dup2, pipe, STDERR_FILENO, STDOUT_FILENO};
8-
use rand::prelude::SliceRandom;
8+
use rand::prelude::IndexedRandom;
99
use rand::Rng;
1010
use similar::TextDiff;
1111
use std::env::temp_dir;
@@ -373,15 +373,15 @@ fn print_diff(rust_output: &str, gnu_output: &str) {
373373
}
374374

375375
pub fn generate_random_string(max_length: usize) -> String {
376-
let mut rng = rand::thread_rng();
376+
let mut rng = rand::rng();
377377
let valid_utf8: Vec<char> = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
378378
.chars()
379379
.collect();
380380
let invalid_utf8 = [0xC3, 0x28]; // Invalid UTF-8 sequence
381381
let mut result = String::new();
382382

383-
for _ in 0..rng.gen_range(0..=max_length) {
384-
if rng.gen_bool(0.9) {
383+
for _ in 0..rng.random_range(0..=max_length) {
384+
if rng.random_bool(0.9) {
385385
let ch = valid_utf8.choose(&mut rng).unwrap();
386386
result.push(*ch);
387387
} else {
@@ -396,18 +396,18 @@ pub fn generate_random_string(max_length: usize) -> String {
396396
}
397397

398398
pub fn generate_random_file() -> Result<String, std::io::Error> {
399-
let mut rng = rand::thread_rng();
399+
let mut rng = rand::rng();
400400
let file_name: String = (0..10)
401-
.map(|_| rng.gen_range(b'a'..=b'z') as char)
401+
.map(|_| rng.random_range(b'a'..=b'z') as char)
402402
.collect();
403403
let mut file_path = temp_dir();
404404
file_path.push(file_name);
405405

406406
let mut file = File::create(&file_path)?;
407407

408-
let content_length = rng.gen_range(10..1000);
408+
let content_length = rng.random_range(10..1000);
409409
let content: String = (0..content_length)
410-
.map(|_| (rng.gen_range(b' '..=b'~') as char))
410+
.map(|_| (rng.random_range(b' '..=b'~') as char))
411411
.collect();
412412

413413
file.write_all(content.as_bytes())?;

fuzz/fuzz_targets/fuzz_cut.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ use crate::fuzz_common::{
1818
static CMD_PATH: &str = "cut";
1919

2020
fn generate_cut_args() -> String {
21-
let mut rng = rand::thread_rng();
22-
let arg_count = rng.gen_range(1..=6);
21+
let mut rng = rand::rng();
22+
let arg_count = rng.random_range(1..=6);
2323
let mut args = Vec::new();
2424

2525
for _ in 0..arg_count {
26-
if rng.gen_bool(0.1) {
27-
args.push(generate_random_string(rng.gen_range(1..=20)));
26+
if rng.random_bool(0.1) {
27+
args.push(generate_random_string(rng.random_range(1..=20)));
2828
} else {
2929
match rng.gen_range(0..=4) {
30-
0 => args.push(String::from("-b") + &rng.gen_range(1..=10).to_string()),
31-
1 => args.push(String::from("-c") + &rng.gen_range(1..=10).to_string()),
30+
0 => args.push(String::from("-b") + &rng.random_range(1..=10).to_string()),
31+
1 => args.push(String::from("-c") + &rng.random_range(1..=10).to_string()),
3232
2 => args.push(String::from("-d,") + &generate_random_string(1)), // Using a comma as a default delimiter
33-
3 => args.push(String::from("-f") + &rng.gen_range(1..=5).to_string()),
33+
3 => args.push(String::from("-f") + &rng.random_range(1..=5).to_string()),
3434
_ => (),
3535
}
3636
}
@@ -40,12 +40,12 @@ fn generate_cut_args() -> String {
4040
}
4141

4242
fn generate_delimited_data(count: usize) -> String {
43-
let mut rng = rand::thread_rng();
43+
let mut rng = rand::rng();
4444
let mut lines = Vec::new();
4545

4646
for _ in 0..count {
47-
let fields = (0..rng.gen_range(1..=5))
48-
.map(|_| generate_random_string(rng.gen_range(1..=10)))
47+
let fields = (0..rng.random_range(1..=5))
48+
.map(|_| generate_random_string(rng.random_range(1..=10)))
4949
.collect::<Vec<_>>()
5050
.join(",");
5151
lines.push(fields);

fuzz/fuzz_targets/fuzz_sort.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use crate::fuzz_common::{
2020
static CMD_PATH: &str = "sort";
2121

2222
fn generate_sort_args() -> String {
23-
let mut rng = rand::thread_rng();
23+
let mut rng = rand::rng();
2424

2525
let arg_count = rng.gen_range(1..=5);
2626
let mut args = Vec::new();
@@ -30,20 +30,20 @@ fn generate_sort_args() -> String {
3030
0 => args.push(String::from("-r")), // Reverse the result of comparisons
3131
1 => args.push(String::from("-n")), // Compare according to string numerical value
3232
2 => args.push(String::from("-f")), // Fold lower case to upper case characters
33-
3 => args.push(generate_random_string(rng.gen_range(1..=10))), // Random string (to simulate file names)
34-
_ => args.push(String::from("-k") + &rng.gen_range(1..=5).to_string()), // Sort via a specified field
33+
3 => args.push(generate_random_string(rng.random_range(1..=10))), // Random string (to simulate file names)
34+
_ => args.push(String::from("-k") + &rng.random_range(1..=5).to_string()), // Sort via a specified field
3535
}
3636
}
3737

3838
args.join(" ")
3939
}
4040

4141
fn generate_random_lines(count: usize) -> String {
42-
let mut rng = rand::thread_rng();
42+
let mut rng = rand::rng();
4343
let mut lines = Vec::new();
4444

4545
for _ in 0..count {
46-
lines.push(generate_random_string(rng.gen_range(1..=20)));
46+
lines.push(generate_random_string(rng.random_range(1..=20)));
4747
}
4848

4949
lines.join("\n")

0 commit comments

Comments
 (0)