@@ -178,27 +178,30 @@ pub fn make_diff(expected: &str, actual: &str, context_size: usize) -> Vec<Misma
178
178
results
179
179
}
180
180
181
- fn print_diff ( expected : & str , actual : & str , context_size : usize ) {
181
+ fn write_diff ( expected : & str , actual : & str , context_size : usize ) -> String {
182
+ use std:: fmt:: Write ;
183
+ let mut output = String :: new ( ) ;
182
184
let diff_results = make_diff ( expected, actual, context_size) ;
183
185
for result in diff_results {
184
186
let mut line_number = result. line_number ;
185
187
for line in result. lines {
186
188
match line {
187
189
DiffLine :: Expected ( e) => {
188
- println ! ( "-\t {}" , e) ;
190
+ writeln ! ( output , "-\t {}" , e) . unwrap ( ) ;
189
191
line_number += 1 ;
190
192
}
191
193
DiffLine :: Context ( c) => {
192
- println ! ( "{}\t {}" , line_number, c) ;
194
+ writeln ! ( output , "{}\t {}" , line_number, c) . unwrap ( ) ;
193
195
line_number += 1 ;
194
196
}
195
197
DiffLine :: Resulting ( r) => {
196
- println ! ( "+\t {}" , r) ;
198
+ writeln ! ( output , "+\t {}" , r) . unwrap ( ) ;
197
199
}
198
200
}
199
201
}
200
- println ! ( ) ;
202
+ writeln ! ( output , "" ) . unwrap ( ) ;
201
203
}
204
+ output
202
205
}
203
206
204
207
pub fn run ( config : Config , testpaths : & TestPaths , revision : Option < & str > ) {
@@ -655,8 +658,12 @@ impl<'test> TestCx<'test> {
655
658
------------------------------------------\n \
656
659
{}\n \
657
660
------------------------------------------\n \
658
- \n ",
659
- expected, actual
661
+ diff:\n \
662
+ ------------------------------------------\n \
663
+ {}\n ",
664
+ expected,
665
+ actual,
666
+ write_diff( expected, actual, 3 ) ,
660
667
) ) ;
661
668
}
662
669
}
@@ -3227,7 +3234,7 @@ impl<'test> TestCx<'test> {
3227
3234
}
3228
3235
let expected_string = fs:: read_to_string ( & expected_file) . unwrap ( ) ;
3229
3236
if dumped_string != expected_string {
3230
- print_diff ( & expected_string, & dumped_string, 3 ) ;
3237
+ print ! ( "{}" , write_diff ( & expected_string, & dumped_string, 3 ) ) ;
3231
3238
panic ! (
3232
3239
"Actual MIR output differs from expected MIR output {}" ,
3233
3240
expected_file. display( )
@@ -3452,7 +3459,7 @@ impl<'test> TestCx<'test> {
3452
3459
println ! ( "normalized {}:\n {}\n " , kind, actual) ;
3453
3460
} else {
3454
3461
println ! ( "diff of {}:\n " , kind) ;
3455
- print_diff ( expected, actual, 3 ) ;
3462
+ print ! ( "{}" , write_diff ( expected, actual, 3 ) ) ;
3456
3463
}
3457
3464
}
3458
3465
0 commit comments