@@ -407,7 +407,8 @@ pub struct TestResult {
407407 pub line_coverage : Option < HitMaps > ,
408408
409409 /// Labeled addresses
410- pub labeled_addresses : AddressHashMap < String > ,
410+ #[ serde( rename = "labeled_addresses" ) ] // Backwards compatibility.
411+ pub labels : AddressHashMap < String > ,
411412
412413 #[ serde( with = "foundry_common::serde_helpers::duration" ) ]
413414 pub duration : Duration ,
@@ -472,11 +473,20 @@ impl fmt::Display for TestResult {
472473 }
473474}
474475
476+ macro_rules! extend {
477+ ( $a: expr, $b: expr, $trace_kind: expr) => {
478+ $a. logs. extend( $b. logs) ;
479+ $a. labels. extend( $b. labels) ;
480+ $a. traces. extend( $b. traces. map( |traces| ( $trace_kind, traces) ) ) ;
481+ $a. merge_coverages( $b. line_coverage) ;
482+ } ;
483+ }
484+
475485impl TestResult {
476486 /// Creates a new test result starting from test setup results.
477487 pub fn new ( setup : & TestSetup ) -> Self {
478488 Self {
479- labeled_addresses : setup. labels . clone ( ) ,
489+ labels : setup. labels . clone ( ) ,
480490 logs : setup. logs . clone ( ) ,
481491 traces : setup. traces . clone ( ) ,
482492 line_coverage : setup. coverage . clone ( ) ,
@@ -491,13 +501,25 @@ impl TestResult {
491501
492502 /// Creates a test setup result.
493503 pub fn setup_result ( setup : TestSetup ) -> Self {
504+ let TestSetup {
505+ address : _,
506+ fuzz_fixtures : _,
507+ logs,
508+ labels,
509+ traces,
510+ coverage,
511+ deployed_libs : _,
512+ reason,
513+ skipped,
514+ deployment_failure : _,
515+ } = setup;
494516 Self {
495- status : if setup . skipped { TestStatus :: Skipped } else { TestStatus :: Failure } ,
496- reason : setup . reason ,
497- logs : setup . logs ,
498- traces : setup . traces ,
499- line_coverage : setup . coverage ,
500- labeled_addresses : setup . labels ,
517+ status : if skipped { TestStatus :: Skipped } else { TestStatus :: Failure } ,
518+ reason,
519+ logs,
520+ traces,
521+ line_coverage : coverage,
522+ labels,
501523 ..Default :: default ( )
502524 }
503525 }
@@ -525,11 +547,7 @@ impl TestResult {
525547 self . kind =
526548 TestKind :: Unit { gas : raw_call_result. gas_used . wrapping_sub ( raw_call_result. stipend ) } ;
527549
528- // Record logs, labels, traces and merge coverages.
529- self . logs . extend ( raw_call_result. logs ) ;
530- self . labeled_addresses . extend ( raw_call_result. labels ) ;
531- self . traces . extend ( raw_call_result. traces . map ( |traces| ( TraceKind :: Execution , traces) ) ) ;
532- self . merge_coverages ( raw_call_result. line_coverage ) ;
550+ extend ! ( self , raw_call_result, TraceKind :: Execution ) ;
533551
534552 self . status = match success {
535553 true => TestStatus :: Success ,
@@ -557,10 +575,7 @@ impl TestResult {
557575 } ;
558576
559577 // Record logs, labels, traces and merge coverages.
560- self . logs . extend ( result. logs ) ;
561- self . labeled_addresses . extend ( result. labeled_addresses ) ;
562- self . traces . extend ( result. traces . map ( |traces| ( TraceKind :: Execution , traces) ) ) ;
563- self . merge_coverages ( result. line_coverage ) ;
578+ extend ! ( self , result, TraceKind :: Execution ) ;
564579
565580 self . status = if result. skipped {
566581 TestStatus :: Skipped
@@ -667,10 +682,7 @@ impl TestResult {
667682
668683 /// Merges the given raw call result into `self`.
669684 pub fn extend ( & mut self , call_result : RawCallResult ) {
670- self . logs . extend ( call_result. logs ) ;
671- self . labeled_addresses . extend ( call_result. labels ) ;
672- self . traces . extend ( call_result. traces . map ( |traces| ( TraceKind :: Execution , traces) ) ) ;
673- self . merge_coverages ( call_result. line_coverage ) ;
685+ extend ! ( self , call_result, TraceKind :: Execution ) ;
674686 }
675687
676688 /// Merges the given coverage result into `self`.
@@ -825,9 +837,10 @@ impl TestSetup {
825837 }
826838
827839 pub fn extend ( & mut self , raw : RawCallResult , trace_kind : TraceKind ) {
828- self . logs . extend ( raw. logs ) ;
829- self . labels . extend ( raw. labels ) ;
830- self . traces . extend ( raw. traces . map ( |traces| ( trace_kind, traces) ) ) ;
831- HitMaps :: merge_opt ( & mut self . coverage , raw. line_coverage ) ;
840+ extend ! ( self , raw, trace_kind) ;
841+ }
842+
843+ pub fn merge_coverages ( & mut self , other_coverage : Option < HitMaps > ) {
844+ HitMaps :: merge_opt ( & mut self . coverage , other_coverage) ;
832845 }
833846}
0 commit comments