@@ -149,9 +149,7 @@ impl<T, F: FnOnce(T) + Send + 'static> FnBox<T> for F {
149149pub enum TestFn {
150150 StaticTestFn ( fn ( ) ) ,
151151 StaticBenchFn ( fn ( & mut Bencher ) ) ,
152- StaticMetricFn ( fn ( & mut MetricMap ) ) ,
153152 DynTestFn ( Box < FnBox < ( ) > > ) ,
154- DynMetricFn ( Box <for <' a > FnBox < & ' a mut MetricMap > >) ,
155153 DynBenchFn ( Box < TDynBenchFn + ' static > ) ,
156154}
157155
@@ -160,9 +158,7 @@ impl TestFn {
160158 match * self {
161159 StaticTestFn ( ..) => PadNone ,
162160 StaticBenchFn ( ..) => PadOnRight ,
163- StaticMetricFn ( ..) => PadOnRight ,
164161 DynTestFn ( ..) => PadNone ,
165- DynMetricFn ( ..) => PadOnRight ,
166162 DynBenchFn ( ..) => PadOnRight ,
167163 }
168164 }
@@ -173,9 +169,7 @@ impl fmt::Debug for TestFn {
173169 f. write_str ( match * self {
174170 StaticTestFn ( ..) => "StaticTestFn(..)" ,
175171 StaticBenchFn ( ..) => "StaticBenchFn(..)" ,
176- StaticMetricFn ( ..) => "StaticMetricFn(..)" ,
177172 DynTestFn ( ..) => "DynTestFn(..)" ,
178- DynMetricFn ( ..) => "DynMetricFn(..)" ,
179173 DynBenchFn ( ..) => "DynBenchFn(..)" ,
180174 } )
181175 }
@@ -244,16 +238,6 @@ impl Metric {
244238 }
245239}
246240
247- #[ derive( PartialEq ) ]
248- pub struct MetricMap ( BTreeMap < String , Metric > ) ;
249-
250- impl Clone for MetricMap {
251- fn clone ( & self ) -> MetricMap {
252- let MetricMap ( ref map) = * self ;
253- MetricMap ( map. clone ( ) )
254- }
255- }
256-
257241/// In case we want to add other options as well, just add them in this struct.
258242#[ derive( Copy , Clone , Debug ) ]
259243pub struct Options {
@@ -526,7 +510,6 @@ pub enum TestResult {
526510 TrFailedMsg ( String ) ,
527511 TrIgnored ,
528512 TrAllowedFail ,
529- TrMetrics ( MetricMap ) ,
530513 TrBench ( BenchSamples ) ,
531514}
532515
@@ -603,10 +586,6 @@ impl<T: Write> ConsoleTestState<T> {
603586 self . write_short_result ( "FAILED (allowed)" , "a" , term:: color:: YELLOW )
604587 }
605588
606- pub fn write_metric ( & mut self ) -> io:: Result < ( ) > {
607- self . write_pretty ( "metric" , term:: color:: CYAN )
608- }
609-
610589 pub fn write_bench ( & mut self ) -> io:: Result < ( ) > {
611590 self . write_pretty ( "bench" , term:: color:: CYAN )
612591 }
@@ -679,10 +658,6 @@ impl<T: Write> ConsoleTestState<T> {
679658 TrFailed | TrFailedMsg ( _) => self . write_failed ( ) ,
680659 TrIgnored => self . write_ignored ( ) ,
681660 TrAllowedFail => self . write_allowed_fail ( ) ,
682- TrMetrics ( ref mm) => {
683- self . write_metric ( ) ?;
684- self . write_plain ( & format ! ( ": {}\n " , mm. fmt_metrics( ) ) )
685- }
686661 TrBench ( ref bs) => {
687662 self . write_bench ( ) ?;
688663 self . write_plain ( & format ! ( ": {}\n " , fmt_bench_samples( bs) ) )
@@ -713,7 +688,6 @@ impl<T: Write> ConsoleTestState<T> {
713688 TrFailedMsg ( ref msg) => format!( "failed: {}" , msg) ,
714689 TrIgnored => "ignored" . to_owned( ) ,
715690 TrAllowedFail => "failed (allowed)" . to_owned( ) ,
716- TrMetrics ( ref mm) => mm. fmt_metrics( ) ,
717691 TrBench ( ref bs) => fmt_bench_samples( bs) ,
718692 } ,
719693 test. name) )
@@ -860,7 +834,6 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
860834
861835 let mut ntest = 0 ;
862836 let mut nbench = 0 ;
863- let mut nmetric = 0 ;
864837
865838 for test in filter_tests ( & opts, tests) {
866839 use TestFn :: * ;
@@ -870,7 +843,6 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
870843 let fntype = match testfn {
871844 StaticTestFn ( ..) | DynTestFn ( ..) => { ntest += 1 ; "test" } ,
872845 StaticBenchFn ( ..) | DynBenchFn ( ..) => { nbench += 1 ; "benchmark" } ,
873- StaticMetricFn ( ..) | DynMetricFn ( ..) => { nmetric += 1 ; "metric" } ,
874846 } ;
875847
876848 st. write_plain ( format ! ( "{}: {}\n " , name, fntype) ) ?;
@@ -885,13 +857,12 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
885857 }
886858
887859 if !opts. quiet {
888- if ntest != 0 || nbench != 0 || nmetric != 0 {
860+ if ntest != 0 || nbench != 0 {
889861 st. write_plain ( "\n " ) ?;
890862 }
891- st. write_plain ( format ! ( "{}, {}, {} \n " ,
863+ st. write_plain ( format ! ( "{}, {}\n " ,
892864 plural( ntest, "test" ) ,
893- plural( nbench, "benchmark" ) ,
894- plural( nmetric, "metric" ) ) ) ?;
865+ plural( nbench, "benchmark" ) ) ) ?;
895866 }
896867
897868 Ok ( ( ) )
@@ -916,15 +887,6 @@ pub fn run_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Resu
916887 }
917888 TrIgnored => st. ignored += 1 ,
918889 TrAllowedFail => st. allowed_fail += 1 ,
919- TrMetrics ( mm) => {
920- let tname = test. name ;
921- let MetricMap ( mm) = mm;
922- for ( k, v) in & mm {
923- st. metrics
924- . insert_metric ( & format ! ( "{}.{}" , tname, k) , v. value , v. noise ) ;
925- }
926- st. measured += 1
927- }
928890 TrBench ( bs) => {
929891 st. metrics . insert_metric ( test. name . as_slice ( ) ,
930892 bs. ns_iter_summ . median ,
@@ -1079,7 +1041,7 @@ pub fn run_tests<F>(opts: &TestOpts, tests: Vec<TestDescAndFn>, mut callback: F)
10791041
10801042 callback ( TeFiltered ( filtered_descs) ) ?;
10811043
1082- let ( filtered_tests, filtered_benchs_and_metrics ) : ( Vec < _ > , _ ) =
1044+ let ( filtered_tests, filtered_benchs ) : ( Vec < _ > , _ ) =
10831045 filtered_tests. into_iter ( ) . partition ( |e| {
10841046 match e. testfn {
10851047 StaticTestFn ( _) | DynTestFn ( _) => true ,
@@ -1164,8 +1126,7 @@ pub fn run_tests<F>(opts: &TestOpts, tests: Vec<TestDescAndFn>, mut callback: F)
11641126
11651127 if opts. bench_benchmarks {
11661128 // All benchmarks run at the end, in serial.
1167- // (this includes metric fns)
1168- for b in filtered_benchs_and_metrics {
1129+ for b in filtered_benchs {
11691130 callback ( TeWait ( b. desc . clone ( ) , b. testfn . padding ( ) ) ) ?;
11701131 run_test ( opts, false , b, tx. clone ( ) ) ;
11711132 let ( test, result, stdout) = rx. recv ( ) . unwrap ( ) ;
@@ -1457,18 +1418,6 @@ pub fn run_test(opts: &TestOpts,
14571418 monitor_ch. send ( ( desc, TrBench ( bs) , Vec :: new ( ) ) ) . unwrap ( ) ;
14581419 return ;
14591420 }
1460- DynMetricFn ( f) => {
1461- let mut mm = MetricMap :: new ( ) ;
1462- f. call_box ( & mut mm) ;
1463- monitor_ch. send ( ( desc, TrMetrics ( mm) , Vec :: new ( ) ) ) . unwrap ( ) ;
1464- return ;
1465- }
1466- StaticMetricFn ( f) => {
1467- let mut mm = MetricMap :: new ( ) ;
1468- f ( & mut mm) ;
1469- monitor_ch. send ( ( desc, TrMetrics ( mm) , Vec :: new ( ) ) ) . unwrap ( ) ;
1470- return ;
1471- }
14721421 DynTestFn ( f) => {
14731422 let cb = move |( ) | {
14741423 __rust_begin_short_backtrace ( || f. call_box ( ( ) ) )
@@ -1510,6 +1459,9 @@ fn calc_result(desc: &TestDesc, task_result: Result<(), Box<Any + Send>>) -> Tes
15101459 }
15111460}
15121461
1462+ #[ derive( Clone , PartialEq ) ]
1463+ pub struct MetricMap ( BTreeMap < String , Metric > ) ;
1464+
15131465impl MetricMap {
15141466 pub fn new ( ) -> MetricMap {
15151467 MetricMap ( BTreeMap :: new ( ) )
@@ -1533,15 +1485,14 @@ impl MetricMap {
15331485 value,
15341486 noise,
15351487 } ;
1536- let MetricMap ( ref mut map) = * self ;
1537- map. insert ( name. to_owned ( ) , m) ;
1488+ self . 0 . insert ( name. to_owned ( ) , m) ;
15381489 }
15391490
15401491 pub fn fmt_metrics ( & self ) -> String {
1541- let MetricMap ( ref mm ) = * self ;
1542- let v : Vec < String > = mm . iter ( )
1543- . map ( |( k, v) | format ! ( "{}: {} (+/- {})" , * k, v. value, v. noise) )
1544- . collect ( ) ;
1492+ let v = self . 0
1493+ . iter ( )
1494+ . map ( |( k, v) | format ! ( "{}: {} (+/- {})" , * k, v. value, v. noise) )
1495+ . collect :: < Vec < _ > > ( ) ;
15451496 v. join ( ", " )
15461497 }
15471498}
0 commit comments