@@ -11,16 +11,20 @@ fn runner_command(runner: &str) -> Command {
1111}
1212
1313pub fn compare_outputs ( intrinsic_name_list : & Vec < String > , runner : & str , target : & str ) -> bool {
14- let c = runner_command ( runner)
15- . arg ( "./intrinsic-test-programs" )
16- . current_dir ( "c_programs" )
17- . output ( ) ;
18-
19- let rust = runner_command ( runner)
20- . arg ( format ! ( "./target/{target}/release/intrinsic-test-programs" ) )
21- . current_dir ( "rust_programs" )
22- . output ( ) ;
23-
14+ let ( c, rust) = rayon:: join (
15+ || {
16+ runner_command ( runner)
17+ . arg ( "./intrinsic-test-programs" )
18+ . current_dir ( "c_programs" )
19+ . output ( )
20+ } ,
21+ || {
22+ runner_command ( runner)
23+ . arg ( format ! ( "./target/{target}/release/intrinsic-test-programs" ) )
24+ . current_dir ( "rust_programs" )
25+ . output ( )
26+ } ,
27+ ) ;
2428 let ( c, rust) = match ( c, rust) {
2529 ( Ok ( c) , Ok ( rust) ) => ( c, rust) ,
2630 a => panic ! ( "{a:#?}" ) ,
@@ -70,18 +74,22 @@ pub fn compare_outputs(intrinsic_name_list: &Vec<String>, runner: &str, target:
7074 . filter_map ( |& & intrinsic| {
7175 let c_output = c_output_map. get ( intrinsic) . unwrap ( ) ;
7276 let rust_output = rust_output_map. get ( intrinsic) . unwrap ( ) ;
73- let diff = diff:: lines ( c_output, rust_output) ;
74- let diffs = diff
75- . into_iter ( )
76- . filter_map ( |diff| match diff {
77- diff:: Result :: Left ( _) | diff:: Result :: Right ( _) => Some ( diff) ,
78- diff:: Result :: Both ( _, _) => None ,
79- } )
80- . collect_vec ( ) ;
81- if diffs. len ( ) > 0 {
82- Some ( ( intrinsic, diffs) )
83- } else {
77+ if rust_output. to_string ( ) == c_output. to_string ( ) {
8478 None
79+ } else {
80+ let diff = diff:: lines ( c_output, rust_output) ;
81+ let diffs = diff
82+ . into_iter ( )
83+ . filter_map ( |diff| match diff {
84+ diff:: Result :: Left ( _) | diff:: Result :: Right ( _) => Some ( diff) ,
85+ diff:: Result :: Both ( _, _) => None ,
86+ } )
87+ . collect_vec ( ) ;
88+ if diffs. len ( ) > 0 {
89+ Some ( ( intrinsic, diffs) )
90+ } else {
91+ None
92+ }
8593 }
8694 } )
8795 . inspect ( |( intrinsic, diffs) | {
0 commit comments