@@ -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\n east\n south\n west\n " ) ?;
298+ std:: fs:: write ( & new, "north\n south\n west\n up\n down\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\n 4a4,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\n east\n south\n west\n up\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\n orange\n yellow\n green\n blue\n " ) ?;
327+ std:: fs:: write ( & new, "red\n orange\n yellow\n blue\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\n blue\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