@@ -150,9 +150,7 @@ impl<T, F: FnOnce(T) + Send + 'static> FnBox<T> for F {
150150pub enum TestFn {
151151 StaticTestFn ( fn ( ) ) ,
152152 StaticBenchFn ( fn ( & mut Bencher ) ) ,
153- StaticMetricFn ( fn ( & mut MetricMap ) ) ,
154153 DynTestFn ( Box < FnBox < ( ) > > ) ,
155- DynMetricFn ( Box <for <' a > FnBox < & ' a mut MetricMap > >) ,
156154 DynBenchFn ( Box < TDynBenchFn + ' static > ) ,
157155}
158156
@@ -161,9 +159,7 @@ impl TestFn {
161159 match * self {
162160 StaticTestFn ( ..) => PadNone ,
163161 StaticBenchFn ( ..) => PadOnRight ,
164- StaticMetricFn ( ..) => PadOnRight ,
165162 DynTestFn ( ..) => PadNone ,
166- DynMetricFn ( ..) => PadOnRight ,
167163 DynBenchFn ( ..) => PadOnRight ,
168164 }
169165 }
@@ -174,9 +170,7 @@ impl fmt::Debug for TestFn {
174170 f. write_str ( match * self {
175171 StaticTestFn ( ..) => "StaticTestFn(..)" ,
176172 StaticBenchFn ( ..) => "StaticBenchFn(..)" ,
177- StaticMetricFn ( ..) => "StaticMetricFn(..)" ,
178173 DynTestFn ( ..) => "DynTestFn(..)" ,
179- DynMetricFn ( ..) => "DynMetricFn(..)" ,
180174 DynBenchFn ( ..) => "DynBenchFn(..)" ,
181175 } )
182176 }
@@ -245,16 +239,6 @@ impl Metric {
245239 }
246240}
247241
248- #[ derive( PartialEq ) ]
249- pub struct MetricMap ( BTreeMap < String , Metric > ) ;
250-
251- impl Clone for MetricMap {
252- fn clone ( & self ) -> MetricMap {
253- let MetricMap ( ref map) = * self ;
254- MetricMap ( map. clone ( ) )
255- }
256- }
257-
258242/// In case we want to add other options as well, just add them in this struct.
259243#[ derive( Copy , Clone , Debug ) ]
260244pub struct Options {
@@ -528,7 +512,6 @@ pub enum TestResult {
528512 TrFailedMsg ( String ) ,
529513 TrIgnored ,
530514 TrAllowedFail ,
531- TrMetrics ( MetricMap ) ,
532515 TrBench ( BenchSamples ) ,
533516}
534517
@@ -605,10 +588,6 @@ impl<T: Write> ConsoleTestState<T> {
605588 self . write_short_result ( "FAILED (allowed)" , "a" , term:: color:: YELLOW )
606589 }
607590
608- pub fn write_metric ( & mut self ) -> io:: Result < ( ) > {
609- self . write_pretty ( "metric" , term:: color:: CYAN )
610- }
611-
612591 pub fn write_bench ( & mut self ) -> io:: Result < ( ) > {
613592 self . write_pretty ( "bench" , term:: color:: CYAN )
614593 }
@@ -688,10 +667,6 @@ impl<T: Write> ConsoleTestState<T> {
688667 TrFailed | TrFailedMsg ( _) => self . write_failed ( ) ,
689668 TrIgnored => self . write_ignored ( ) ,
690669 TrAllowedFail => self . write_allowed_fail ( ) ,
691- TrMetrics ( ref mm) => {
692- self . write_metric ( ) ?;
693- self . write_plain ( & format ! ( ": {}\n " , mm. fmt_metrics( ) ) )
694- }
695670 TrBench ( ref bs) => {
696671 self . write_bench ( ) ?;
697672 self . write_plain ( & format ! ( ": {}\n " , fmt_bench_samples( bs) ) )
@@ -722,7 +697,6 @@ impl<T: Write> ConsoleTestState<T> {
722697 TrFailedMsg ( ref msg) => format!( "failed: {}" , msg) ,
723698 TrIgnored => "ignored" . to_owned( ) ,
724699 TrAllowedFail => "failed (allowed)" . to_owned( ) ,
725- TrMetrics ( ref mm) => mm. fmt_metrics( ) ,
726700 TrBench ( ref bs) => fmt_bench_samples( bs) ,
727701 } ,
728702 test. name) )
@@ -872,7 +846,6 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
872846
873847 let mut ntest = 0 ;
874848 let mut nbench = 0 ;
875- let mut nmetric = 0 ;
876849
877850 for test in filter_tests ( & opts, tests) {
878851 use TestFn :: * ;
@@ -882,7 +855,6 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
882855 let fntype = match testfn {
883856 StaticTestFn ( ..) | DynTestFn ( ..) => { ntest += 1 ; "test" } ,
884857 StaticBenchFn ( ..) | DynBenchFn ( ..) => { nbench += 1 ; "benchmark" } ,
885- StaticMetricFn ( ..) | DynMetricFn ( ..) => { nmetric += 1 ; "metric" } ,
886858 } ;
887859
888860 st. write_plain ( format ! ( "{}: {}\n " , name, fntype) ) ?;
@@ -897,13 +869,12 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
897869 }
898870
899871 if !opts. quiet {
900- if ntest != 0 || nbench != 0 || nmetric != 0 {
872+ if ntest != 0 || nbench != 0 {
901873 st. write_plain ( "\n " ) ?;
902874 }
903- st. write_plain ( format ! ( "{}, {}, {} \n " ,
875+ st. write_plain ( format ! ( "{}, {}\n " ,
904876 plural( ntest, "test" ) ,
905- plural( nbench, "benchmark" ) ,
906- plural( nmetric, "metric" ) ) ) ?;
877+ plural( nbench, "benchmark" ) ) ) ?;
907878 }
908879
909880 Ok ( ( ) )
@@ -928,15 +899,6 @@ pub fn run_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Resu
928899 }
929900 TrIgnored => st. ignored += 1 ,
930901 TrAllowedFail => st. allowed_fail += 1 ,
931- TrMetrics ( mm) => {
932- let tname = test. name ;
933- let MetricMap ( mm) = mm;
934- for ( k, v) in & mm {
935- st. metrics
936- . insert_metric ( & format ! ( "{}.{}" , tname, k) , v. value , v. noise ) ;
937- }
938- st. measured += 1
939- }
940902 TrBench ( bs) => {
941903 st. metrics . insert_metric ( test. name . as_slice ( ) ,
942904 bs. ns_iter_summ . median ,
@@ -1095,7 +1057,7 @@ pub fn run_tests<F>(opts: &TestOpts, tests: Vec<TestDescAndFn>, mut callback: F)
10951057
10961058 callback ( TeFiltered ( filtered_descs) ) ?;
10971059
1098- let ( filtered_tests, filtered_benchs_and_metrics ) : ( Vec < _ > , _ ) =
1060+ let ( filtered_tests, filtered_benchs ) : ( Vec < _ > , _ ) =
10991061 filtered_tests. into_iter ( ) . partition ( |e| {
11001062 match e. testfn {
11011063 StaticTestFn ( _) | DynTestFn ( _) => true ,
@@ -1182,8 +1144,7 @@ pub fn run_tests<F>(opts: &TestOpts, tests: Vec<TestDescAndFn>, mut callback: F)
11821144
11831145 if opts. bench_benchmarks {
11841146 // All benchmarks run at the end, in serial.
1185- // (this includes metric fns)
1186- for b in filtered_benchs_and_metrics {
1147+ for b in filtered_benchs {
11871148 callback ( TeWait ( b. desc . clone ( ) , b. testfn . padding ( ) ) ) ?;
11881149 run_test ( opts, false , b, tx. clone ( ) ) ;
11891150 let ( test, result, stdout) = rx. recv ( ) . unwrap ( ) ;
@@ -1487,18 +1448,6 @@ pub fn run_test(opts: &TestOpts,
14871448 monitor_ch. send ( ( desc, TrBench ( bs) , Vec :: new ( ) ) ) . unwrap ( ) ;
14881449 return ;
14891450 }
1490- DynMetricFn ( f) => {
1491- let mut mm = MetricMap :: new ( ) ;
1492- f. call_box ( & mut mm) ;
1493- monitor_ch. send ( ( desc, TrMetrics ( mm) , Vec :: new ( ) ) ) . unwrap ( ) ;
1494- return ;
1495- }
1496- StaticMetricFn ( f) => {
1497- let mut mm = MetricMap :: new ( ) ;
1498- f ( & mut mm) ;
1499- monitor_ch. send ( ( desc, TrMetrics ( mm) , Vec :: new ( ) ) ) . unwrap ( ) ;
1500- return ;
1501- }
15021451 DynTestFn ( f) => {
15031452 let cb = move |( ) | {
15041453 __rust_begin_short_backtrace ( || f. call_box ( ( ) ) )
@@ -1540,6 +1489,9 @@ fn calc_result(desc: &TestDesc, task_result: Result<(), Box<Any + Send>>) -> Tes
15401489 }
15411490}
15421491
1492+ #[ derive( Clone , PartialEq ) ]
1493+ pub struct MetricMap ( BTreeMap < String , Metric > ) ;
1494+
15431495impl MetricMap {
15441496 pub fn new ( ) -> MetricMap {
15451497 MetricMap ( BTreeMap :: new ( ) )
@@ -1563,15 +1515,14 @@ impl MetricMap {
15631515 value,
15641516 noise,
15651517 } ;
1566- let MetricMap ( ref mut map) = * self ;
1567- map. insert ( name. to_owned ( ) , m) ;
1518+ self . 0 . insert ( name. to_owned ( ) , m) ;
15681519 }
15691520
15701521 pub fn fmt_metrics ( & self ) -> String {
1571- let MetricMap ( ref mm ) = * self ;
1572- let v : Vec < String > = mm . iter ( )
1573- . map ( |( k, v) | format ! ( "{}: {} (+/- {})" , * k, v. value, v. noise) )
1574- . collect ( ) ;
1522+ let v = self . 0
1523+ . iter ( )
1524+ . map ( |( k, v) | format ! ( "{}: {} (+/- {})" , * k, v. value, v. noise) )
1525+ . collect :: < Vec < _ > > ( ) ;
15751526 v. join ( ", " )
15761527 }
15771528}
0 commit comments