Skip to content

Commit 83c08d2

Browse files
committed
Remove *MetricFn
1 parent 7f06055 commit 83c08d2

File tree

1 file changed

+13
-62
lines changed

1 file changed

+13
-62
lines changed

src/libtest/lib.rs

+13-62
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,7 @@ impl<T, F: FnOnce(T) + Send + 'static> FnBox<T> for F {
149149
pub 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)]
259243
pub 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+
15131465
impl 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

Comments
 (0)