@@ -430,103 +430,6 @@ fn test_permutations() {
430430 }
431431}
432432
433- #[ test]
434- fn test_permutations_missing_line_ending ( ) {
435- // test all possible six-line files with missing newlines.
436- let _ = std:: fs:: create_dir ( "target" ) ;
437- for & a in & [ 0 , 1 , 2 ] {
438- for & b in & [ 0 , 1 , 2 ] {
439- for & c in & [ 0 , 1 , 2 ] {
440- for & d in & [ 0 , 1 , 2 ] {
441- for & e in & [ 0 , 1 , 2 ] {
442- for & f in & [ 0 , 1 , 2 ] {
443- for & g in & [ 0 , 1 , 2 ] {
444- use std:: fs:: { self , File } ;
445- use std:: io:: Write ;
446- use std:: process:: Command ;
447- let mut alef = Vec :: new ( ) ;
448- let mut bet = Vec :: new ( ) ;
449- alef. write_all ( if a == 0 { b"a\n " } else { b"b\n " } )
450- . unwrap ( ) ;
451- if a != 2 {
452- bet. write_all ( b"b\n " ) . unwrap ( ) ;
453- }
454- alef. write_all ( if b == 0 { b"c\n " } else { b"d\n " } )
455- . unwrap ( ) ;
456- if b != 2 {
457- bet. write_all ( b"d\n " ) . unwrap ( ) ;
458- }
459- alef. write_all ( if c == 0 { b"e\n " } else { b"f\n " } )
460- . unwrap ( ) ;
461- if c != 2 {
462- bet. write_all ( b"f\n " ) . unwrap ( ) ;
463- }
464- alef. write_all ( if d == 0 { b"g\n " } else { b"h\n " } )
465- . unwrap ( ) ;
466- if d != 2 {
467- bet. write_all ( b"h\n " ) . unwrap ( ) ;
468- }
469- alef. write_all ( if e == 0 { b"i\n " } else { b"j\n " } )
470- . unwrap ( ) ;
471- if e != 2 {
472- bet. write_all ( b"j\n " ) . unwrap ( ) ;
473- }
474- alef. write_all ( if f == 0 { b"k\n " } else { b"l\n " } )
475- . unwrap ( ) ;
476- if f != 2 {
477- bet. write_all ( b"l\n " ) . unwrap ( ) ;
478- }
479- match g {
480- 0 => {
481- alef. pop ( ) ;
482- }
483- 1 => {
484- bet. pop ( ) ;
485- }
486- 2 => {
487- alef. pop ( ) ;
488- bet. pop ( ) ;
489- }
490- _ => unreachable ! ( ) ,
491- }
492- if alef. is_empty ( ) && bet. is_empty ( ) {
493- continue ;
494- } ;
495- // This test diff is intentionally reversed.
496- // We want it to turn the alef into bet.
497- let diff = diff ( & alef, "a/alefn" , & bet, "target/alefn" , 2 ) ;
498- File :: create ( "target/abn.diff" )
499- . unwrap ( )
500- . write_all ( & diff)
501- . unwrap ( ) ;
502- let mut fa = File :: create ( "target/alefn" ) . unwrap ( ) ;
503- fa. write_all ( & alef[ ..] ) . unwrap ( ) ;
504- let mut fb = File :: create ( "target/betn" ) . unwrap ( ) ;
505- fb. write_all ( & bet[ ..] ) . unwrap ( ) ;
506- let _ = fa;
507- let _ = fb;
508- let output = Command :: new ( "patch" )
509- . arg ( "-p0" )
510- . arg ( "--context" )
511- . stdin ( File :: open ( "target/abn.diff" ) . unwrap ( ) )
512- . output ( )
513- . unwrap ( ) ;
514- if !output. status . success ( ) {
515- panic ! ( "{:?}" , output) ;
516- }
517- //println!("{}", String::from_utf8_lossy(&output.stdout));
518- //println!("{}", String::from_utf8_lossy(&output.stderr));
519- let alef = fs:: read ( "target/alefn" ) . unwrap ( ) ;
520- assert_eq ! ( alef, bet) ;
521- }
522- }
523- }
524- }
525- }
526- }
527- }
528- }
529-
530433#[ test]
531434fn test_permutations_empty_lines ( ) {
532435 // test all possible six-line files with missing newlines.
@@ -537,77 +440,61 @@ fn test_permutations_empty_lines() {
537440 for & d in & [ 0 , 1 , 2 ] {
538441 for & e in & [ 0 , 1 , 2 ] {
539442 for & f in & [ 0 , 1 , 2 ] {
540- for & g in & [ 0 , 1 , 2 , 3 ] {
541- use std:: fs:: { self , File } ;
542- use std:: io:: Write ;
543- use std:: process:: Command ;
544- let mut alef = Vec :: new ( ) ;
545- let mut bet = Vec :: new ( ) ;
546- alef. write_all ( if a == 0 { b"\n " } else { b"b\n " } ) . unwrap ( ) ;
547- if a != 2 {
548- bet. write_all ( b"b\n " ) . unwrap ( ) ;
549- }
550- alef. write_all ( if b == 0 { b"\n " } else { b"d\n " } ) . unwrap ( ) ;
551- if b != 2 {
552- bet. write_all ( b"d\n " ) . unwrap ( ) ;
553- }
554- alef. write_all ( if c == 0 { b"\n " } else { b"f\n " } ) . unwrap ( ) ;
555- if c != 2 {
556- bet. write_all ( b"f\n " ) . unwrap ( ) ;
557- }
558- alef. write_all ( if d == 0 { b"\n " } else { b"h\n " } ) . unwrap ( ) ;
559- if d != 2 {
560- bet. write_all ( b"h\n " ) . unwrap ( ) ;
561- }
562- alef. write_all ( if e == 0 { b"\n " } else { b"j\n " } ) . unwrap ( ) ;
563- if e != 2 {
564- bet. write_all ( b"j\n " ) . unwrap ( ) ;
565- }
566- alef. write_all ( if f == 0 { b"\n " } else { b"l\n " } ) . unwrap ( ) ;
567- if f != 2 {
568- bet. write_all ( b"l\n " ) . unwrap ( ) ;
569- }
570- match g {
571- 0 => {
572- alef. pop ( ) ;
573- }
574- 1 => {
575- bet. pop ( ) ;
576- }
577- 2 => {
578- alef. pop ( ) ;
579- bet. pop ( ) ;
580- }
581- 3 => { }
582- _ => unreachable ! ( ) ,
583- }
584- // This test diff is intentionally reversed.
585- // We want it to turn the alef into bet.
586- let diff = diff ( & alef, "a/alef_" , & bet, "target/alef_" , 2 ) ;
587- File :: create ( "target/ab_.diff" )
588- . unwrap ( )
589- . write_all ( & diff)
590- . unwrap ( ) ;
591- let mut fa = File :: create ( "target/alef_" ) . unwrap ( ) ;
592- fa. write_all ( & alef[ ..] ) . unwrap ( ) ;
593- let mut fb = File :: create ( "target/bet_" ) . unwrap ( ) ;
594- fb. write_all ( & bet[ ..] ) . unwrap ( ) ;
595- let _ = fa;
596- let _ = fb;
597- let output = Command :: new ( "patch" )
598- . arg ( "-p0" )
599- . arg ( "--context" )
600- . stdin ( File :: open ( "target/ab_.diff" ) . unwrap ( ) )
601- . output ( )
602- . unwrap ( ) ;
603- if !output. status . success ( ) {
604- panic ! ( "{:?}" , output) ;
605- }
606- //println!("{}", String::from_utf8_lossy(&output.stdout));
607- //println!("{}", String::from_utf8_lossy(&output.stderr));
608- let alef = fs:: read ( "target/alef_" ) . unwrap ( ) ;
609- assert_eq ! ( alef, bet) ;
443+ use std:: fs:: { self , File } ;
444+ use std:: io:: Write ;
445+ use std:: process:: Command ;
446+ let mut alef = Vec :: new ( ) ;
447+ let mut bet = Vec :: new ( ) ;
448+ alef. write_all ( if a == 0 { b"\n " } else { b"b\n " } ) . unwrap ( ) ;
449+ if a != 2 {
450+ bet. write_all ( b"b\n " ) . unwrap ( ) ;
451+ }
452+ alef. write_all ( if b == 0 { b"\n " } else { b"d\n " } ) . unwrap ( ) ;
453+ if b != 2 {
454+ bet. write_all ( b"d\n " ) . unwrap ( ) ;
455+ }
456+ alef. write_all ( if c == 0 { b"\n " } else { b"f\n " } ) . unwrap ( ) ;
457+ if c != 2 {
458+ bet. write_all ( b"f\n " ) . unwrap ( ) ;
459+ }
460+ alef. write_all ( if d == 0 { b"\n " } else { b"h\n " } ) . unwrap ( ) ;
461+ if d != 2 {
462+ bet. write_all ( b"h\n " ) . unwrap ( ) ;
463+ }
464+ alef. write_all ( if e == 0 { b"\n " } else { b"j\n " } ) . unwrap ( ) ;
465+ if e != 2 {
466+ bet. write_all ( b"j\n " ) . unwrap ( ) ;
467+ }
468+ alef. write_all ( if f == 0 { b"\n " } else { b"l\n " } ) . unwrap ( ) ;
469+ if f != 2 {
470+ bet. write_all ( b"l\n " ) . unwrap ( ) ;
471+ }
472+ // This test diff is intentionally reversed.
473+ // We want it to turn the alef into bet.
474+ let diff = diff ( & alef, "a/alef_" , & bet, "target/alef_" , 2 ) ;
475+ File :: create ( "target/ab_.diff" )
476+ . unwrap ( )
477+ . write_all ( & diff)
478+ . unwrap ( ) ;
479+ let mut fa = File :: create ( "target/alef_" ) . unwrap ( ) ;
480+ fa. write_all ( & alef[ ..] ) . unwrap ( ) ;
481+ let mut fb = File :: create ( "target/bet_" ) . unwrap ( ) ;
482+ fb. write_all ( & bet[ ..] ) . unwrap ( ) ;
483+ let _ = fa;
484+ let _ = fb;
485+ let output = Command :: new ( "patch" )
486+ . arg ( "-p0" )
487+ . arg ( "--context" )
488+ . stdin ( File :: open ( "target/ab_.diff" ) . unwrap ( ) )
489+ . output ( )
490+ . unwrap ( ) ;
491+ if !output. status . success ( ) {
492+ panic ! ( "{:?}" , output) ;
610493 }
494+ //println!("{}", String::from_utf8_lossy(&output.stdout));
495+ //println!("{}", String::from_utf8_lossy(&output.stderr));
496+ let alef = fs:: read ( "target/alef_" ) . unwrap ( ) ;
497+ assert_eq ! ( alef, bet) ;
611498 }
612499 }
613500 }
0 commit comments