diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 10a9a0eb..d0c370b6 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -33,13 +33,13 @@ jobs: uses: actions-rs/cargo@v1.0.3 with: command: clippy - args: --features flamegraph,prost-codec -- -D warnings + args: --all-targets --features flamegraph,prost-codec -- -D warnings - name: Run cargo clippy protobuf uses: actions-rs/cargo@v1.0.3 with: command: clippy - args: --features flamegraph,protobuf-codec -- -D warnings + args: --all-targets --features flamegraph,protobuf-codec -- -D warnings build: name: Build diff --git a/examples/backtrace_while_sampling.rs b/examples/backtrace_while_sampling.rs index 90b6d613..224da1d6 100644 --- a/examples/backtrace_while_sampling.rs +++ b/examples/backtrace_while_sampling.rs @@ -1,6 +1,5 @@ // Copyright 2021 TiKV Project Authors. Licensed under Apache-2.0. -use pprof; use std::fs::File; fn deep_recursive(depth: i32) { @@ -22,13 +21,10 @@ fn main() { deep_recursive(20); } - match guard.report().build() { - Ok(report) => { - let file = File::create("flamegraph.svg").unwrap(); - report.flamegraph(file).unwrap(); + if let Ok(report) = guard.report().build() { + let file = File::create("flamegraph.svg").unwrap(); + report.flamegraph(file).unwrap(); - println!("report: {:?}", &report); - } - Err(_) => {} + println!("report: {:?}", &report); }; } diff --git a/examples/flamegraph.rs b/examples/flamegraph.rs index aee6e3bd..18ccdfd6 100644 --- a/examples/flamegraph.rs +++ b/examples/flamegraph.rs @@ -1,6 +1,5 @@ // Copyright 2019 TiKV Project Authors. Licensed under Apache-2.0. -use pprof; use std::fs::File; #[inline(never)] @@ -67,8 +66,8 @@ fn prepare_prime_numbers() -> Vec { } } let mut prime_numbers = vec![]; - for i in 2..10000 { - if prime_number_table[i] { + for (i, exist) in prime_number_table.iter().enumerate().skip(2) { + if *exist { prime_numbers.push(i); } } @@ -91,22 +90,17 @@ fn main() { if is_prime_number2(i, &prime_numbers) { v += 1; } - } else { - if is_prime_number3(i, &prime_numbers) { - v += 1; - } + } else if is_prime_number3(i, &prime_numbers) { + v += 1; } } println!("Prime numbers: {}", v); - match guard.report().build() { - Ok(report) => { - let file = File::create("flamegraph.svg").unwrap(); - report.flamegraph(file).unwrap(); + if let Ok(report) = guard.report().build() { + let file = File::create("flamegraph.svg").unwrap(); + report.flamegraph(file).unwrap(); - println!("report: {:?}", &report); - } - Err(_) => {} + println!("report: {:?}", &report); }; } diff --git a/examples/malloc_hook.rs b/examples/malloc_hook.rs index fb19ad2b..bc322af4 100644 --- a/examples/malloc_hook.rs +++ b/examples/malloc_hook.rs @@ -2,7 +2,6 @@ extern crate libc; -use pprof; use std::ffi::c_void; #[cfg(not(all(target_os = "linux", target_env = "gnu")))] @@ -78,8 +77,8 @@ fn prepare_prime_numbers() -> Vec { } } let mut prime_numbers = vec![]; - for i in 2..10000 { - if prime_number_table[i] { + for (i, exist) in prime_number_table.iter().enumerate().skip(2) { + if *exist { prime_numbers.push(i); } } diff --git a/examples/multithread.rs b/examples/multithread.rs index d31bdc37..d16863ac 100644 --- a/examples/multithread.rs +++ b/examples/multithread.rs @@ -1,6 +1,5 @@ // Copyright 2019 TiKV Project Authors. Licensed under Apache-2.0. -use pprof; use std::sync::Arc; #[inline(never)] @@ -35,8 +34,8 @@ fn prepare_prime_numbers() -> Vec { } } let mut prime_numbers = vec![]; - for i in 2..10000 { - if prime_number_table[i] { + for (i, exist) in prime_number_table.iter().enumerate().skip(2) { + if *exist { prime_numbers.push(i); } } @@ -76,7 +75,7 @@ fn main() { }) .unwrap(); - let p3 = prime_numbers.clone(); + let p3 = prime_numbers; std::thread::spawn(move || loop { let mut _v = 0; @@ -88,11 +87,8 @@ fn main() { }); loop { - match guard.report().build() { - Ok(report) => { - println!("{:?}", report); - } - Err(_) => {} + if let Ok(report) = guard.report().build() { + println!("{:?}", report); }; std::thread::sleep(std::time::Duration::from_secs(1)) } diff --git a/examples/multithread_flamegraph.rs b/examples/multithread_flamegraph.rs index dfb7faeb..af8f8148 100644 --- a/examples/multithread_flamegraph.rs +++ b/examples/multithread_flamegraph.rs @@ -1,6 +1,5 @@ // Copyright 2019 TiKV Project Authors. Licensed under Apache-2.0. -use pprof; use std::fs::File; use std::sync::Arc; @@ -36,8 +35,8 @@ fn prepare_prime_numbers() -> Vec { } } let mut prime_numbers = vec![]; - for i in 2..10000 { - if prime_number_table[i] { + for (i, exist) in prime_number_table.iter().enumerate().skip(2) { + if *exist { prime_numbers.push(i); } } @@ -78,7 +77,7 @@ fn main() { }) .unwrap(); - let p3 = prime_numbers.clone(); + let p3 = prime_numbers; std::thread::spawn(move || loop { let mut _v = 0; @@ -90,14 +89,11 @@ fn main() { }); std::thread::sleep(std::time::Duration::from_secs(5)); - match guard.report().build() { - Ok(report) => { - let file = File::create("flamegraph.svg").unwrap(); - report.flamegraph(file).unwrap(); + if let Ok(report) = guard.report().build() { + let file = File::create("flamegraph.svg").unwrap(); + report.flamegraph(file).unwrap(); - println!("{:?}", report); - } - Err(_) => {} + println!("{:?}", report); }; // pprof::PROFILER.lock().unwrap().stop(); diff --git a/examples/post_processor.rs b/examples/post_processor.rs index 6d079027..91886885 100644 --- a/examples/post_processor.rs +++ b/examples/post_processor.rs @@ -1,6 +1,5 @@ // Copyright 2019 TiKV Project Authors. Licensed under Apache-2.0. -use pprof; use std::sync::Arc; #[inline(never)] @@ -35,8 +34,8 @@ fn prepare_prime_numbers() -> Vec { } } let mut prime_numbers = vec![]; - for i in 2..10000 { - if prime_number_table[i] { + for (i, exist) in prime_number_table.iter().enumerate().skip(2) { + if *exist { prime_numbers.push(i); } } @@ -77,7 +76,7 @@ fn main() { }) .unwrap(); - let p3 = prime_numbers.clone(); + let p3 = prime_numbers; std::thread::spawn(move || loop { let mut _v = 0; @@ -89,17 +88,14 @@ fn main() { }); loop { - match guard + if let Ok(report) = guard .report() .frames_post_processor(|frames| { frames.thread_name = "PROCESSED".to_string(); }) .build() { - Ok(report) => { - println!("{:?}", report); - } - Err(_) => {} + println!("{:?}", report); }; std::thread::sleep(std::time::Duration::from_secs(1)) } diff --git a/examples/prime_number.rs b/examples/prime_number.rs index 060cc44b..831de1fe 100644 --- a/examples/prime_number.rs +++ b/examples/prime_number.rs @@ -1,7 +1,5 @@ // Copyright 2019 TiKV Project Authors. Licensed under Apache-2.0. -use pprof; - #[inline(never)] fn is_prime_number(v: usize, prime_numbers: &[usize]) -> bool { if v < 10000 { @@ -34,8 +32,8 @@ fn prepare_prime_numbers() -> Vec { } } let mut prime_numbers = vec![]; - for i in 2..10000 { - if prime_number_table[i] { + for (i, exist) in prime_number_table.iter().enumerate().skip(2) { + if *exist { prime_numbers.push(i); } } @@ -58,11 +56,8 @@ fn main() { println!("Prime numbers: {}", v); - match guard.report().build() { - Ok(report) => { - println!("{:?}", report); - } - Err(_) => {} + if let Ok(report) = guard.report().build() { + println!("{:?}", report); }; } } diff --git a/examples/profile_proto.rs b/examples/profile_proto.rs index 7ffb7884..5546ec5c 100644 --- a/examples/profile_proto.rs +++ b/examples/profile_proto.rs @@ -1,6 +1,5 @@ // Copyright 2019 TiKV Project Authors. Licensed under Apache-2.0. -use pprof; use pprof::protos::Message; use std::fs::File; use std::io::Write; @@ -69,8 +68,8 @@ fn prepare_prime_numbers() -> Vec { } } let mut prime_numbers = vec![]; - for i in 2..10000 { - if prime_number_table[i] { + for (i, exist) in prime_number_table.iter().enumerate().skip(2) { + if *exist { prime_numbers.push(i); } } @@ -93,29 +92,24 @@ fn main() { if is_prime_number2(i, &prime_numbers) { v += 1; } - } else { - if is_prime_number3(i, &prime_numbers) { - v += 1; - } + } else if is_prime_number3(i, &prime_numbers) { + v += 1; } } println!("Prime numbers: {}", v); - match guard.report().build() { - Ok(report) => { - let mut file = File::create("profile.pb").unwrap(); - let profile = report.pprof().unwrap(); + if let Ok(report) = guard.report().build() { + let mut file = File::create("profile.pb").unwrap(); + let profile = report.pprof().unwrap(); - let mut content = Vec::new(); - #[cfg(not(feature = "protobuf-codec"))] - profile.encode(&mut content).unwrap(); - #[cfg(feature = "protobuf-codec")] - profile.write_to_vec(&mut content).unwrap(); - file.write_all(&content).unwrap(); + let mut content = Vec::new(); + #[cfg(not(feature = "protobuf-codec"))] + profile.encode(&mut content).unwrap(); + #[cfg(feature = "protobuf-codec")] + profile.write_to_vec(&mut content).unwrap(); + file.write_all(&content).unwrap(); - println!("report: {:?}", report); - } - Err(_) => {} + println!("report: {:?}", report); }; } diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 00000000..a15352fc --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,2 @@ +edition = "2021" +reorder_imports = true diff --git a/src/addr_validate.rs b/src/addr_validate.rs index 10dc27c4..9e9a34c6 100644 --- a/src/addr_validate.rs +++ b/src/addr_validate.rs @@ -102,7 +102,7 @@ mod test { fn validate_stack() { let i = 0; - assert_eq!(validate(&i as *const _ as *const libc::c_void), true); + assert!(validate(&i as *const _ as *const libc::c_void)); } #[test] @@ -110,13 +110,13 @@ mod test { let vec = vec![0; 1000]; for i in vec.iter() { - assert_eq!(validate(i as *const _ as *const libc::c_void), true); + assert!(validate(i as *const _ as *const libc::c_void)); } } #[test] fn failed_validate() { - assert_eq!(validate(0 as *const libc::c_void), false); - assert_eq!(validate((-1 as i32) as usize as *const libc::c_void), false) + assert!(!validate(std::ptr::null::())); + assert!(!validate(-1_i32 as usize as *const libc::c_void)) } }