Skip to content
This repository has been archived by the owner on Sep 24, 2022. It is now read-only.

Commit

Permalink
Replace the test added by #349 with a bench (#351)
Browse files Browse the repository at this point in the history
CI environments can be noisy and while the test worked great
locally on my machine, it didn't on the CI environment.
This replaces the test with a (manually tracked) benchmark.
As per #349 (comment)
  • Loading branch information
est31 authored and alexcrichton committed Oct 29, 2019
1 parent 4b05a9d commit 4673cfd
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 37 deletions.
1 change: 1 addition & 0 deletions .github/workflows/main.yml
Expand Up @@ -15,6 +15,7 @@ jobs:
- run: cargo test
- run: cargo test --features preserve_order
- run: cargo test --manifest-path test-suite/Cargo.toml
- run: cargo bench

rustfmt:
name: Rustfmt
Expand Down
5 changes: 5 additions & 0 deletions test-suite/Cargo.toml
Expand Up @@ -5,7 +5,12 @@ authors = ["Alex Crichton <alex@alexcrichton.com>"]
publish = false
edition = "2018"

[[bench]]
name = "linear"
harness = false

[dev-dependencies]
bencher = "0.1"
toml = { path = ".." }
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"
Expand Down
35 changes: 35 additions & 0 deletions test-suite/benches/linear.rs
@@ -0,0 +1,35 @@
// Regressoion test for https://github.com/alexcrichton/toml-rs/issues/342

use bencher::{benchmark_group, benchmark_main, black_box, Bencher};
use toml::Value;

fn parse(bench: &mut Bencher, entries: usize, f: impl Fn(usize) -> String) {
let mut s = String::new();
for i in 0..entries {
s += &f(i);
s += "entry = 42\n"
}
let s = black_box(s);
bench.iter(|| {
black_box(s.parse::<Value>().unwrap());
})
}

fn map_10(bench: &mut Bencher) {
parse(bench, 10, |i| format!("[header_no_{}]\n", i))
}

fn map_100(bench: &mut Bencher) {
parse(bench, 100, |i| format!("[header_no_{}]\n", i))
}

fn array_10(bench: &mut Bencher) {
parse(bench, 10, |_i| "[[header]]\n".to_owned())
}

fn array_100(bench: &mut Bencher) {
parse(bench, 100, |_i| "[[header]]\n".to_owned())
}

benchmark_group!(benches, map_10, map_100, array_10, array_100);
benchmark_main!(benches);
37 changes: 0 additions & 37 deletions test-suite/tests/linear.rs

This file was deleted.

0 comments on commit 4673cfd

Please sign in to comment.