@@ -2,6 +2,7 @@ use itertools::Itertools;
22use rayon:: prelude:: * ;
33use std:: { collections:: HashMap , process:: Command } ;
44
5+ pub const INTRINSIC_DELIMITER : & str = "############" ;
56fn runner_command ( runner : & str ) -> Command {
67 let mut it = runner. split_whitespace ( ) ;
78 let mut cmd = Command :: new ( it. next ( ) . unwrap ( ) ) ;
@@ -27,7 +28,7 @@ pub fn compare_outputs(intrinsic_name_list: &Vec<String>, runner: &str, target:
2728 ) ;
2829 let ( c, rust) = match ( c, rust) {
2930 ( Ok ( c) , Ok ( rust) ) => ( c, rust) ,
30- a => panic ! ( "{a :#?}" ) ,
31+ failure => panic ! ( "Failed to run: {failure :#?}" ) ,
3132 } ;
3233
3334 if !c. status . success ( ) {
@@ -56,11 +57,11 @@ pub fn compare_outputs(intrinsic_name_list: &Vec<String>, runner: &str, target:
5657 . replace ( "-nan" , "nan" ) ;
5758
5859 let c_output_map = c
59- . split ( "############" )
60+ . split ( INTRINSIC_DELIMITER )
6061 . filter_map ( |output| output. trim ( ) . split_once ( "\n " ) )
6162 . collect :: < HashMap < & str , & str > > ( ) ;
6263 let rust_output_map = rust
63- . split ( "############" )
64+ . split ( INTRINSIC_DELIMITER )
6465 . filter_map ( |output| output. trim ( ) . split_once ( "\n " ) )
6566 . collect :: < HashMap < & str , & str > > ( ) ;
6667
@@ -74,7 +75,7 @@ pub fn compare_outputs(intrinsic_name_list: &Vec<String>, runner: &str, target:
7475 . filter_map ( |& & intrinsic| {
7576 let c_output = c_output_map. get ( intrinsic) . unwrap ( ) ;
7677 let rust_output = rust_output_map. get ( intrinsic) . unwrap ( ) ;
77- if rust_output. to_string ( ) == c_output. to_string ( ) {
78+ if rust_output. eq ( c_output) {
7879 None
7980 } else {
8081 let diff = diff:: lines ( c_output, rust_output) ;
0 commit comments