Skip to content

Commit ec17e5b

Browse files
author
Gunter Schmidt
committed
Feat: Update Diff
* use clap parser (10x faster) * parser implements all options with not yet implemented error * internationalization of error and info messages, e.g. help * moved main tests (still has some module tests) * separated and moved benches * clean up old code * adapted fuzzer
1 parent b2258ed commit ec17e5b

22 files changed

Lines changed: 2320 additions & 511 deletions

Cargo.toml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,3 @@ large_types_passed_by_value = "allow"
247247
[workspace.metadata.cargo-shear]
248248
ignored = ["clap", "fluent", "libstdbuf"]
249249

250-
[[bench]]
251-
name = "bench_diffutils"
252-
path = "benches/bench-diffutils.rs"
253-
harness = false

benches/bench-diffutils.rs

Lines changed: 0 additions & 293 deletions
This file was deleted.

fuzz/fuzz_targets/fuzz_ed.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ extern crate libfuzzer_sys;
55
use std::fs::{self, File};
66
use std::io::Write;
77
use std::process::Command;
8-
use uu_diff::ed_diff::{self, DiffError};
9-
use uu_diff::params::Params;
8+
use uu_diff::ed_diff::{self};
9+
use uu_diff::params_diff::Params;
10+
use uu_diff::DiffError;
1011

1112
fn diff_w(expected: &[u8], actual: &[u8], filename: &str) -> Result<Vec<u8>, DiffError> {
1213
let mut output = ed_diff::diff(expected, actual, &Params::default())?;

fuzz/fuzz_targets/fuzz_normal.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use std::io::Write;
77
use std::process::Command;
88

99
use uu_diff::normal_diff;
10-
use uu_diff::params::Params;
10+
use uu_diff::params_diff::Params;
1111

1212
fuzz_target!(|x: (Vec<u8>, Vec<u8>)| {
1313
let (from, to) = x;

fuzz/fuzz_targets/fuzz_patch.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::fs::{self, File};
55
use std::io::Write;
66
use std::process::Command;
77

8-
use uu_diff::params::Params;
8+
use uu_diff::params_diff::Params;
99
use uu_diff::unified_diff;
1010

1111
fuzz_target!(|x: (Vec<u8>, Vec<u8>, u8)| {
@@ -28,7 +28,7 @@ fuzz_target!(|x: (Vec<u8>, Vec<u8>, u8)| {
2828
&Params {
2929
from: "a/fuzz.file".into(),
3030
to: "target/fuzz.file".into(),
31-
context_count: context as usize,
31+
n_output_lines: context as usize,
3232
..Default::default()
3333
},
3434
);

fuzz/fuzz_targets/fuzz_side.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ extern crate libfuzzer_sys;
55
use std::fs::File;
66
use std::io::Write;
77

8-
use uu_diff::params::Params;
8+
use uu_diff::params_diff::Params;
99
use uu_diff::side_diff;
1010

1111
fuzz_target!(|x: (Vec<u8>, Vec<u8>, /* usize, usize */ bool)| {

src/uu/diff/Cargo.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ path = "src/main.rs"
2525
path = "src/diff.rs"
2626

2727
[features]
28-
# default = ["feat_run_binary_bench" ]
28+
default = ["feat_run_binary_bench" ]
2929
# The cmd benchmarks start the binaries and take a lot of runtime on the github checks.
3030
# Only run them locally.
3131
feat_run_binary_bench = []
@@ -50,3 +50,7 @@ tempfile.workspace = true
5050
# for flamegraph
5151
# debug = 1
5252

53+
[[bench]]
54+
name = "diff_bench"
55+
harness = false
56+

0 commit comments

Comments
 (0)