style: apply rustfmt across bench and core crates
CI / ci (ubuntu-latest) (push) Has been cancelled
CI / ci (windows-latest) (push) Has been cancelled

Pure formatting pass - no semantic changes. Mostly long-line reflow,
import statement reordering (alphabetical), and trailing-newline fixes
that had been accumulating in the working tree.

Affected files:
* crates/bench/src/{data_gen,main,mmap_reader,pread_reader,report,runner}.rs
* crates/bench/src/suites/{concurrent,growth,jump,memory,render,rotation,startup}.rs
* crates/core/src/io/{file_reader,index_cache,read_cache}.rs
* crates/core/src/{types.rs, watcher/file_watcher.rs}
This commit is contained in:
dailz
2026-06-22 16:38:28 +08:00
parent c4ba196016
commit ef26481976
18 changed files with 115 additions and 55 deletions
+2 -4
View File
@@ -84,10 +84,8 @@ pub fn generate_growable_file(dir: &Path) -> std::io::Result<PathBuf> {
/// Append `count` lines to the file
pub fn append_lines(path: &Path, count: usize) -> std::io::Result<()> {
let existing_lines = count_existing_lines(path)?;
let mut file = BufWriter::with_capacity(
64 * 1024,
fs::OpenOptions::new().append(true).open(path)?,
);
let mut file =
BufWriter::with_capacity(64 * 1024, fs::OpenOptions::new().append(true).open(path)?);
for i in 0..count {
writeln!(
file,
+4 -2
View File
@@ -27,8 +27,10 @@ fn main() {
let suites = match args.suites {
Some(names) => {
let parsed: Result<Vec<_>, _> =
names.iter().map(|s| s.parse::<log_viewer_bench::runner::Suite>()).collect();
let parsed: Result<Vec<_>, _> = names
.iter()
.map(|s| s.parse::<log_viewer_bench::runner::Suite>())
.collect();
match parsed {
Ok(s) => Some(s),
Err(e) => {
+9 -9
View File
@@ -7,14 +7,14 @@
use std::fs::File;
use std::io::BufReader;
use std::path::Path;
use std::sync::atomic::{AtomicBool, AtomicPtr, AtomicU8, Ordering};
use std::sync::Once;
use std::sync::atomic::{AtomicBool, AtomicPtr, AtomicU8, Ordering};
use memmap2::{Advice, Mmap, MmapOptions, RemapOptions};
use nix::sys::signal::{sigaction, SaFlags, SigAction, SigHandler, SigSet, Signal};
use nix::sys::signal::{SaFlags, SigAction, SigHandler, SigSet, Signal, sigaction};
use crate::line_index::LineIndex;
use crate::FileReaderBackend;
use crate::line_index::LineIndex;
// ─── SIGBUS Handler ──────────────────────────────────────────────────────────
//
@@ -35,7 +35,10 @@ const HANDLER_NONE: u8 = 0;
const HANDLER_DEFAULT: u8 = 1;
const HANDLER_IGNORE: u8 = 2;
const HANDLER_PLAIN: u8 = 3; // extern "C" fn(c_int)
#[allow(clippy::unseparated_literal_suffix, reason = "clarity: this is the SA_SIGACTION variant")]
#[allow(
clippy::unseparated_literal_suffix,
reason = "clarity: this is the SA_SIGACTION variant"
)]
const HANDLER_SIGACTION: u8 = 4; // extern "C" fn(c_int, *mut siginfo_t, *mut c_void)
/// Old SIGBUS handler type — raw atomic, async-signal-safe to read.
@@ -107,11 +110,8 @@ extern "C" fn sigbus_handler(
HANDLER_SIGACTION => {
let ptr = OLD_HANDLER_PTR.load(Ordering::Acquire);
if !ptr.is_null() {
let f: extern "C" fn(
libc::c_int,
*mut libc::siginfo_t,
*mut std::ffi::c_void,
) = unsafe { std::mem::transmute(ptr) };
let f: extern "C" fn(libc::c_int, *mut libc::siginfo_t, *mut std::ffi::c_void) =
unsafe { std::mem::transmute(ptr) };
f(sig, info, ctx);
} else {
unsafe { libc::_exit(128 + sig) };
+10 -3
View File
@@ -15,8 +15,8 @@ use std::os::unix::fs::FileExt;
use std::os::unix::io::AsRawFd;
use std::path::Path;
use crate::line_index::LineIndex;
use crate::FileReaderBackend;
use crate::line_index::LineIndex;
const BLOCK_SIZE: usize = 256;
const CACHE_CHUNK: usize = 4096;
@@ -478,12 +478,19 @@ mod tests {
let mut reader = PreadReaderPlain::open(&path).unwrap();
assert_eq!(reader.total_lines(), 3);
assert_eq!(reader.get_line(0), Some("alpha".to_owned()));
assert_eq!(reader.get_line(3), None, "should be out of bounds before append");
assert_eq!(
reader.get_line(3),
None,
"should be out of bounds before append"
);
// Phase 2: append 2 more lines
{
use std::io::Write as _;
let mut f = std::fs::OpenOptions::new().append(true).open(&path).unwrap();
let mut f = std::fs::OpenOptions::new()
.append(true)
.open(&path)
.unwrap();
f.write_all(b"delta\nepsilon\n").unwrap();
}
+47 -9
View File
@@ -145,8 +145,7 @@ pub fn format_report(results: &[BenchmarkResult]) -> String {
let mut mem_rows: Vec<&BenchmarkResult> = category_results.to_vec();
mem_rows.sort_by(|a, b| {
(&a.test_name, &a.backend, &a.variant)
.cmp(&(&b.test_name, &b.backend, &b.variant))
(&a.test_name, &a.backend, &a.variant).cmp(&(&b.test_name, &b.backend, &b.variant))
});
for r in mem_rows {
let variant_label = format!("{} ({})", r.backend, r.variant);
@@ -243,21 +242,60 @@ mod tests {
#[test]
fn report_ordering_independent_of_input_order() {
let set_a = vec![
make_result("sequential", "read_1mb", "pread", "default", vec![100, 110, 105]),
make_result("sequential", "read_1mb", "mmap", "default", vec![80, 85, 90]),
make_result("sequential", "read_4kb", "pread", "default", vec![10, 12, 11]),
make_result(
"sequential",
"read_1mb",
"pread",
"default",
vec![100, 110, 105],
),
make_result(
"sequential",
"read_1mb",
"mmap",
"default",
vec![80, 85, 90],
),
make_result(
"sequential",
"read_4kb",
"pread",
"default",
vec![10, 12, 11],
),
make_result("sequential", "read_4kb", "mmap", "default", vec![8, 9, 7]),
];
let set_b = vec![
make_result("sequential", "read_4kb", "mmap", "default", vec![8, 9, 7]),
make_result("sequential", "read_1mb", "mmap", "default", vec![80, 85, 90]),
make_result("sequential", "read_4kb", "pread", "default", vec![10, 12, 11]),
make_result("sequential", "read_1mb", "pread", "default", vec![100, 110, 105]),
make_result(
"sequential",
"read_1mb",
"mmap",
"default",
vec![80, 85, 90],
),
make_result(
"sequential",
"read_4kb",
"pread",
"default",
vec![10, 12, 11],
),
make_result(
"sequential",
"read_1mb",
"pread",
"default",
vec![100, 110, 105],
),
];
let report_a = format_report(&set_a);
let report_b = format_report(&set_b);
assert_eq!(report_a, report_b, "Reports must be identical regardless of input order");
assert_eq!(
report_a, report_b,
"Reports must be identical regardless of input order"
);
}
}
+5 -1
View File
@@ -154,7 +154,11 @@ mod tests {
("concurrent", Suite::Concurrent),
];
for (s, expected_suite) in expected {
assert_eq!(Suite::from_str(s).unwrap(), expected_suite, "failed to parse '{s}'");
assert_eq!(
Suite::from_str(s).unwrap(),
expected_suite,
"failed to parse '{s}'"
);
}
}
+1 -1
View File
@@ -1,5 +1,6 @@
use std::collections::HashMap;
use crate::FileReaderBackend;
use crate::metrics::MetricsCollector;
use crate::mmap_reader::{
MmapReaderPhaseAware, MmapReaderPlain, MmapReaderPopulate, MmapReaderRandom,
@@ -8,7 +9,6 @@ use crate::mmap_reader::{
use crate::pread_reader::{PreadReaderPlain, PreadReaderRandom, PreadReaderSequential};
use crate::runner::BenchConfig;
use crate::types::BenchmarkResult;
use crate::FileReaderBackend;
pub fn run(config: &BenchConfig) -> Vec<BenchmarkResult> {
let mut results = Vec::new();
+1 -1
View File
@@ -1,12 +1,12 @@
use std::collections::HashMap;
use crate::FileReaderBackend;
use crate::data_gen;
use crate::metrics::MetricsCollector;
use crate::mmap_reader::MmapReaderPlain;
use crate::pread_reader::PreadReaderPlain;
use crate::runner::BenchConfig;
use crate::types::BenchmarkResult;
use crate::FileReaderBackend;
pub fn run(config: &BenchConfig) -> Vec<BenchmarkResult> {
let mut results = Vec::new();
+1 -1
View File
@@ -1,6 +1,7 @@
use std::collections::HashMap;
use super::FRAME_LINES;
use crate::FileReaderBackend;
use crate::metrics::MetricsCollector;
use crate::mmap_reader::{
MmapReaderPhaseAware, MmapReaderPlain, MmapReaderPopulate, MmapReaderRandom,
@@ -9,7 +10,6 @@ use crate::mmap_reader::{
use crate::pread_reader::{PreadReaderPlain, PreadReaderRandom, PreadReaderSequential};
use crate::runner::BenchConfig;
use crate::types::BenchmarkResult;
use crate::FileReaderBackend;
pub fn run(config: &BenchConfig) -> Vec<BenchmarkResult> {
let mut results = Vec::new();
+1 -1
View File
@@ -1,5 +1,6 @@
use std::collections::HashMap;
use crate::FileReaderBackend;
use crate::metrics::MetricsCollector;
use crate::mmap_reader::{
MmapReaderPhaseAware, MmapReaderPlain, MmapReaderPopulate, MmapReaderRandom,
@@ -8,7 +9,6 @@ use crate::mmap_reader::{
use crate::pread_reader::{PreadReaderPlain, PreadReaderRandom, PreadReaderSequential};
use crate::runner::BenchConfig;
use crate::types::BenchmarkResult;
use crate::FileReaderBackend;
pub fn run(config: &BenchConfig) -> Vec<BenchmarkResult> {
let mut results = Vec::new();
+14 -4
View File
@@ -1,6 +1,7 @@
use std::collections::HashMap;
use super::FRAME_LINES;
use crate::FileReaderBackend;
use crate::metrics::MetricsCollector;
use crate::mmap_reader::{
MmapReaderPhaseAware, MmapReaderPlain, MmapReaderPopulate, MmapReaderRandom,
@@ -9,7 +10,6 @@ use crate::mmap_reader::{
use crate::pread_reader::{PreadReaderPlain, PreadReaderRandom, PreadReaderSequential};
use crate::runner::BenchConfig;
use crate::types::BenchmarkResult;
use crate::FileReaderBackend;
pub fn run(config: &BenchConfig) -> Vec<BenchmarkResult> {
let mut results = Vec::new();
@@ -248,7 +248,11 @@ mod tests {
assert!(
!ranges_overlap(pos[i].1, pos[j].1),
"overlap: {:?} @ {} vs {:?} @ {} (total={})",
pos[i].0, pos[i].1, pos[j].0, pos[j].1, total
pos[i].0,
pos[i].1,
pos[j].0,
pos[j].1,
total
);
}
}
@@ -269,7 +273,10 @@ mod tests {
assert!(
!ranges_overlap(pos[i].1, pos[j].1),
"overlap at total=104: {:?} @ {} vs {:?} @ {}",
pos[i].0, pos[i].1, pos[j].0, pos[j].1
pos[i].0,
pos[i].1,
pos[j].0,
pos[j].1
);
}
}
@@ -283,7 +290,10 @@ mod tests {
assert!(
!ranges_overlap(pos[i].1, pos[j].1),
"overlap at total=105: {:?} @ {} vs {:?} @ {}",
pos[i].0, pos[i].1, pos[j].0, pos[j].1
pos[i].0,
pos[i].1,
pos[j].0,
pos[j].1
);
}
}
+1 -1
View File
@@ -1,12 +1,12 @@
use std::collections::HashMap;
use crate::FileReaderBackend;
use crate::data_gen;
use crate::metrics::MetricsCollector;
use crate::mmap_reader::{self, MmapReaderPlain};
use crate::pread_reader::PreadReaderPlain;
use crate::runner::BenchConfig;
use crate::types::BenchmarkResult;
use crate::FileReaderBackend;
pub fn run(config: &BenchConfig) -> Vec<BenchmarkResult> {
let mut results = Vec::new();
+1 -1
View File
@@ -1,6 +1,7 @@
use std::collections::HashMap;
use std::path::Path;
use crate::FileReaderBackend;
use crate::metrics::MetricsCollector;
use crate::mmap_reader::{
MmapReaderPhaseAware, MmapReaderPlain, MmapReaderPopulate, MmapReaderRandom,
@@ -9,7 +10,6 @@ use crate::mmap_reader::{
use crate::pread_reader::{PreadReaderPlain, PreadReaderRandom, PreadReaderSequential};
use crate::runner::BenchConfig;
use crate::types::BenchmarkResult;
use crate::FileReaderBackend;
pub fn run(config: &BenchConfig) -> Vec<BenchmarkResult> {
let mut results = Vec::new();