Skip to content

Commit a7a66e7

Browse files
committed
diff: test single-line ranges in normal and ed formats
1 parent a7aadb7 commit a7a66e7

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

‎tests/by-util/test_diff.rs‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,3 +288,51 @@ fn sdiff_gutter_marker_column() -> Result<(), Box<dyn std::error::Error>> {
288288

289289
Ok(())
290290
}
291+
292+
#[test]
293+
fn normal_format_single_line_ranges() -> Result<(), Box<dyn std::error::Error>> {
294+
let tmp_dir = tempdir()?;
295+
let old = tmp_dir.path().join("old");
296+
let new = tmp_dir.path().join("new");
297+
std::fs::write(&old, "north\neast\nsouth\nwest\n")?;
298+
std::fs::write(&new, "north\nsouth\nwest\nup\ndown\n")?;
299+
300+
let mut cmd = cargo_bin_cmd!("diffutils");
301+
cmd.arg("diff").arg(&old).arg(&new);
302+
cmd.assert()
303+
.code(predicate::eq(1))
304+
.stdout("2d1\n< east\n4a4,5\n> up\n> down\n");
305+
306+
let mut cmd = cargo_bin_cmd!("diffutils");
307+
cmd.arg("diff").arg("/dev/null").arg(&old);
308+
if cfg!(unix) {
309+
cmd.assert()
310+
.code(predicate::eq(1))
311+
.stdout("0a1,4\n> north\n> east\n> south\n> west\n");
312+
}
313+
314+
std::fs::write(&new, "north\neast\nsouth\nwest\nup\n")?;
315+
let mut cmd = cargo_bin_cmd!("diffutils");
316+
cmd.arg("diff").arg(&old).arg(&new);
317+
cmd.assert().code(predicate::eq(1)).stdout("4a5\n> up\n");
318+
Ok(())
319+
}
320+
321+
#[test]
322+
fn ed_format_single_line_deletions() -> Result<(), Box<dyn std::error::Error>> {
323+
let tmp_dir = tempdir()?;
324+
let old = tmp_dir.path().join("old");
325+
let new = tmp_dir.path().join("new");
326+
std::fs::write(&old, "red\norange\nyellow\ngreen\nblue\n")?;
327+
std::fs::write(&new, "red\norange\nyellow\nblue\n")?;
328+
329+
let mut cmd = cargo_bin_cmd!("diffutils");
330+
cmd.arg("diff").arg("-e").arg(&old).arg(&new);
331+
cmd.assert().code(predicate::eq(1)).stdout("4d\n");
332+
333+
std::fs::write(&new, "red\nblue\n")?;
334+
let mut cmd = cargo_bin_cmd!("diffutils");
335+
cmd.arg("diff").arg("-e").arg(&old).arg(&new);
336+
cmd.assert().code(predicate::eq(1)).stdout("2,4d\n");
337+
Ok(())
338+
}

0 commit comments

Comments
 (0)