@@ -112,9 +112,17 @@ fn main() {
112
112
// measureme 0.8 has a single file
113
113
println ! ( "!self-profile-file:{}" , profile_data. to_str( ) . unwrap( ) ) ;
114
114
let filename = profile_data. file_name ( ) . unwrap ( ) . to_str ( ) . unwrap ( ) ;
115
- let json = run_summarize ( "summarize" , & prof_out_dir, filename)
116
- . or_else ( |_| run_summarize ( "summarize-9.0" , & prof_out_dir, filename) )
117
- . expect ( "able to run summarize or summarize-9.0" ) ;
115
+ let json = match run_summarize ( "summarize" , & prof_out_dir, filename) {
116
+ Ok ( s) => s,
117
+ Err ( e1) => {
118
+ match run_summarize ( "summarize-9.0" , & prof_out_dir, filename) {
119
+ Ok ( s) => s,
120
+ Err ( e2) => {
121
+ panic ! ( "failed to run summarize and summarize-9.0. Errors:\n summarize: {:?}\n summarize-9.0: {:?}" , e1, e2) ;
122
+ }
123
+ }
124
+ }
125
+ } ;
118
126
println ! ( "!self-profile-output:{}" , json) ;
119
127
} else {
120
128
let prefix = prefix. expect ( & format ! ( "found prefix {:?}" , prof_out_dir) ) ;
@@ -349,7 +357,9 @@ fn run_summarize(name: &str, prof_out_dir: &Path, prefix: &str) -> anyhow::Resul
349
357
cmd. current_dir ( & prof_out_dir) ;
350
358
cmd. arg ( "summarize" ) . arg ( "--json" ) ;
351
359
cmd. arg ( & prefix) ;
352
- let status = cmd. status ( ) ?;
360
+ let status = cmd
361
+ . status ( )
362
+ . with_context ( || format ! ( "Command::new({}).status() failed" , name) ) ?;
353
363
if !status. success ( ) {
354
364
anyhow:: bail!(
355
365
"failed to run {} in {:?} with prefix {:?}" ,
@@ -358,7 +368,10 @@ fn run_summarize(name: &str, prof_out_dir: &Path, prefix: &str) -> anyhow::Resul
358
368
prefix
359
369
)
360
370
}
361
- let json = prof_out_dir. join ( & format ! ( "{}.json" , prefix) ) ;
371
+ let json = prof_out_dir. join ( & format ! (
372
+ "{}.json" ,
373
+ prefix. strip_suffix( ".mm_profdata" ) . unwrap_or( prefix)
374
+ ) ) ;
362
375
fs:: read_to_string ( & json) . with_context ( || format ! ( "failed to read {:?}" , json) )
363
376
}
364
377
0 commit comments