Skip to content

Commit 2537a49

Browse files
committed
Auto merge of #46620 - bjorn3:remove-test-metric, r=kennytm
Remove *MetricFn fixes #44808
2 parents 02b4d3d + 83c08d2 commit 2537a49

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
@@ -150,9 +150,7 @@ impl<T, F: FnOnce(T) + Send + 'static> FnBox<T> for F {
150150
pub 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)]
260244
pub 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+
15431495
impl 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

Comments
 (0)