about summary refs log tree commit diff
path: root/src/libtest
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-12-10 16:31:32 +0000
committerbors <bors@rust-lang.org>2017-12-10 16:31:32 +0000
commit2537a499c2f1983011ad04ba2e59e5ff2e2989b6 (patch)
tree1d1c6155de2ae3baef54d275aee786f43d384bce /src/libtest
parent02b4d3ddfb7cd9f1caf8ed90f18f8e798a1f4b05 (diff)
parent83c08d21740c544df618104b512bac1e3b2299bb (diff)
downloadrust-2537a499c2f1983011ad04ba2e59e5ff2e2989b6.tar.gz
rust-2537a499c2f1983011ad04ba2e59e5ff2e2989b6.zip
Auto merge of #46620 - bjorn3:remove-test-metric, r=kennytm
Remove *MetricFn

fixes #44808
Diffstat (limited to 'src/libtest')
-rw-r--r--src/libtest/lib.rs75
1 files changed, 13 insertions, 62 deletions
diff --git a/src/libtest/lib.rs b/src/libtest/lib.rs
index ef08b877262..bc96a5d6740 100644
--- a/src/libtest/lib.rs
+++ b/src/libtest/lib.rs
@@ -150,9 +150,7 @@ impl<T, F: FnOnce(T) + Send + 'static> FnBox<T> for F {
 pub enum TestFn {
     StaticTestFn(fn()),
     StaticBenchFn(fn(&mut Bencher)),
-    StaticMetricFn(fn(&mut MetricMap)),
     DynTestFn(Box<FnBox<()>>),
-    DynMetricFn(Box<for<'a> FnBox<&'a mut MetricMap>>),
     DynBenchFn(Box<TDynBenchFn + 'static>),
 }
 
@@ -161,9 +159,7 @@ impl TestFn {
         match *self {
             StaticTestFn(..) => PadNone,
             StaticBenchFn(..) => PadOnRight,
-            StaticMetricFn(..) => PadOnRight,
             DynTestFn(..) => PadNone,
-            DynMetricFn(..) => PadOnRight,
             DynBenchFn(..) => PadOnRight,
         }
     }
@@ -174,9 +170,7 @@ impl fmt::Debug for TestFn {
         f.write_str(match *self {
             StaticTestFn(..) => "StaticTestFn(..)",
             StaticBenchFn(..) => "StaticBenchFn(..)",
-            StaticMetricFn(..) => "StaticMetricFn(..)",
             DynTestFn(..) => "DynTestFn(..)",
-            DynMetricFn(..) => "DynMetricFn(..)",
             DynBenchFn(..) => "DynBenchFn(..)",
         })
     }
@@ -245,16 +239,6 @@ impl Metric {
     }
 }
 
-#[derive(PartialEq)]
-pub struct MetricMap(BTreeMap<String, Metric>);
-
-impl Clone for MetricMap {
-    fn clone(&self) -> MetricMap {
-        let MetricMap(ref map) = *self;
-        MetricMap(map.clone())
-    }
-}
-
 /// In case we want to add other options as well, just add them in this struct.
 #[derive(Copy, Clone, Debug)]
 pub struct Options {
@@ -528,7 +512,6 @@ pub enum TestResult {
     TrFailedMsg(String),
     TrIgnored,
     TrAllowedFail,
-    TrMetrics(MetricMap),
     TrBench(BenchSamples),
 }
 
@@ -605,10 +588,6 @@ impl<T: Write> ConsoleTestState<T> {
         self.write_short_result("FAILED (allowed)", "a", term::color::YELLOW)
     }
 
-    pub fn write_metric(&mut self) -> io::Result<()> {
-        self.write_pretty("metric", term::color::CYAN)
-    }
-
     pub fn write_bench(&mut self) -> io::Result<()> {
         self.write_pretty("bench", term::color::CYAN)
     }
@@ -688,10 +667,6 @@ impl<T: Write> ConsoleTestState<T> {
             TrFailed | TrFailedMsg(_) => self.write_failed(),
             TrIgnored => self.write_ignored(),
             TrAllowedFail => self.write_allowed_fail(),
-            TrMetrics(ref mm) => {
-                self.write_metric()?;
-                self.write_plain(&format!(": {}\n", mm.fmt_metrics()))
-            }
             TrBench(ref bs) => {
                 self.write_bench()?;
                 self.write_plain(&format!(": {}\n", fmt_bench_samples(bs)))
@@ -722,7 +697,6 @@ impl<T: Write> ConsoleTestState<T> {
                         TrFailedMsg(ref msg) => format!("failed: {}", msg),
                         TrIgnored => "ignored".to_owned(),
                         TrAllowedFail => "failed (allowed)".to_owned(),
-                        TrMetrics(ref mm) => mm.fmt_metrics(),
                         TrBench(ref bs) => fmt_bench_samples(bs),
                     },
                     test.name))
@@ -872,7 +846,6 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
 
     let mut ntest = 0;
     let mut nbench = 0;
-    let mut nmetric = 0;
 
     for test in filter_tests(&opts, tests) {
         use TestFn::*;
@@ -882,7 +855,6 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
         let fntype = match testfn {
             StaticTestFn(..) | DynTestFn(..) => { ntest += 1; "test" },
             StaticBenchFn(..) | DynBenchFn(..) => { nbench += 1; "benchmark" },
-            StaticMetricFn(..) | DynMetricFn(..) => { nmetric += 1; "metric" },
         };
 
         st.write_plain(format!("{}: {}\n", name, fntype))?;
@@ -897,13 +869,12 @@ pub fn list_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Res
     }
 
     if !opts.quiet {
-        if ntest != 0 || nbench != 0 || nmetric != 0 {
+        if ntest != 0 || nbench != 0 {
             st.write_plain("\n")?;
         }
-        st.write_plain(format!("{}, {}, {}\n",
+        st.write_plain(format!("{}, {}\n",
             plural(ntest, "test"),
-            plural(nbench, "benchmark"),
-            plural(nmetric, "metric")))?;
+            plural(nbench, "benchmark")))?;
     }
 
     Ok(())
@@ -928,15 +899,6 @@ pub fn run_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Resu
                     }
                     TrIgnored => st.ignored += 1,
                     TrAllowedFail => st.allowed_fail += 1,
-                    TrMetrics(mm) => {
-                        let tname = test.name;
-                        let MetricMap(mm) = mm;
-                        for (k, v) in &mm {
-                            st.metrics
-                              .insert_metric(&format!("{}.{}", tname, k), v.value, v.noise);
-                        }
-                        st.measured += 1
-                    }
                     TrBench(bs) => {
                         st.metrics.insert_metric(test.name.as_slice(),
                                                  bs.ns_iter_summ.median,
@@ -1095,7 +1057,7 @@ pub fn run_tests<F>(opts: &TestOpts, tests: Vec<TestDescAndFn>, mut callback: F)
 
     callback(TeFiltered(filtered_descs))?;
 
-    let (filtered_tests, filtered_benchs_and_metrics): (Vec<_>, _) =
+    let (filtered_tests, filtered_benchs): (Vec<_>, _) =
         filtered_tests.into_iter().partition(|e| {
             match e.testfn {
                 StaticTestFn(_) | DynTestFn(_) => true,
@@ -1182,8 +1144,7 @@ pub fn run_tests<F>(opts: &TestOpts, tests: Vec<TestDescAndFn>, mut callback: F)
 
     if opts.bench_benchmarks {
         // All benchmarks run at the end, in serial.
-        // (this includes metric fns)
-        for b in filtered_benchs_and_metrics {
+        for b in filtered_benchs {
             callback(TeWait(b.desc.clone(), b.testfn.padding()))?;
             run_test(opts, false, b, tx.clone());
             let (test, result, stdout) = rx.recv().unwrap();
@@ -1487,18 +1448,6 @@ pub fn run_test(opts: &TestOpts,
             monitor_ch.send((desc, TrBench(bs), Vec::new())).unwrap();
             return;
         }
-        DynMetricFn(f) => {
-            let mut mm = MetricMap::new();
-            f.call_box(&mut mm);
-            monitor_ch.send((desc, TrMetrics(mm), Vec::new())).unwrap();
-            return;
-        }
-        StaticMetricFn(f) => {
-            let mut mm = MetricMap::new();
-            f(&mut mm);
-            monitor_ch.send((desc, TrMetrics(mm), Vec::new())).unwrap();
-            return;
-        }
         DynTestFn(f) => {
             let cb = move |()| {
                 __rust_begin_short_backtrace(|| f.call_box(()))
@@ -1540,6 +1489,9 @@ fn calc_result(desc: &TestDesc, task_result: Result<(), Box<Any + Send>>) -> Tes
     }
 }
 
+#[derive(Clone, PartialEq)]
+pub struct MetricMap(BTreeMap<String, Metric>);
+
 impl MetricMap {
     pub fn new() -> MetricMap {
         MetricMap(BTreeMap::new())
@@ -1563,15 +1515,14 @@ impl MetricMap {
             value,
             noise,
         };
-        let MetricMap(ref mut map) = *self;
-        map.insert(name.to_owned(), m);
+        self.0.insert(name.to_owned(), m);
     }
 
     pub fn fmt_metrics(&self) -> String {
-        let MetricMap(ref mm) = *self;
-        let v: Vec<String> = mm.iter()
-                               .map(|(k, v)| format!("{}: {} (+/- {})", *k, v.value, v.noise))
-                               .collect();
+        let v = self.0
+                   .iter()
+                   .map(|(k, v)| format!("{}: {} (+/- {})", *k, v.value, v.noise))
+                   .collect::<Vec<_>>();
         v.join(", ")
     }
 }