bench: split to separate package

Unfortunately cargo doesn't allow optional dev dependencies (see
rust-lang/cargo#1596) so this is the workaround.

Previously, running `cargo test` triggered the build of all dev
dependencies, including criterion, which in turn pulls in a lot of
stuff. Running tests should be faster, hence this change.
This commit is contained in:
Antoine Martin 2020-12-15 12:06:24 +01:00
parent 99f599e910
commit 8d11c817f3
14 changed files with 98 additions and 47 deletions

30
Cargo.lock generated
View file

@ -19,16 +19,30 @@ version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"aoc", "aoc",
"criterion",
"md-5", "md-5",
] ]
[[package]]
name = "aoc2015_bench"
version = "0.1.0"
dependencies = [
"aoc2015",
"criterion",
]
[[package]] [[package]]
name = "aoc2018" name = "aoc2018"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"aoc", "aoc",
]
[[package]]
name = "aoc2018_bench"
version = "0.1.0"
dependencies = [
"aoc2018",
"criterion", "criterion",
] ]
@ -38,6 +52,13 @@ version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"aoc", "aoc",
]
[[package]]
name = "aoc2019_bench"
version = "0.1.0"
dependencies = [
"aoc2019",
"criterion", "criterion",
] ]
@ -47,6 +68,13 @@ version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"aoc", "aoc",
]
[[package]]
name = "aoc2020_bench"
version = "0.1.0"
dependencies = [
"aoc2020",
"criterion", "criterion",
] ]

View file

@ -1,5 +1,5 @@
[workspace] [workspace]
members = ["aoc*"] members = ["aoc*", "aoc*/aoc*_bench"]
default-members = ["aoc2020"] default-members = ["aoc2020"]

View file

@ -6,25 +6,14 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dev-dependencies]
criterion = "0.3"
[dependencies] [dependencies]
aoc = { path = "../aoc" } aoc = { path = "../aoc" }
anyhow = "1.0" anyhow = "1.0"
md-5 = "0.8" md-5 = "0.8"
[lib] [lib]
path = "src/lib.rs" path = "src/lib.rs"
bench = false
[[bin]] [[bin]]
name = "aoc2015" name = "aoc2015"
path = "src/main.rs" path = "src/main.rs"
bench = false
[[bench]]
name = "bench"
harness = false

View file

@ -0,0 +1,17 @@
[package]
name = "aoc2015_bench"
version = "0.1.0"
authors = ["Antoine Martin <antoine97.martin@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
aoc2015 = { path = "../" }
[dev-dependencies]
criterion = "0.3"
[[bench]]
name = "aoc2015_bench"
harness = false

View file

@ -5,25 +5,14 @@ authors = ["Antoine Martin <antoine97.martin@gmail.com>"]
edition = "2018" edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
#
[dev-dependencies]
criterion = "0.3"
[dependencies] [dependencies]
aoc = { path = "../aoc" } aoc = { path = "../aoc" }
anyhow = "1.0" anyhow = "1.0"
[lib] [lib]
path = "src/lib.rs" path = "src/lib.rs"
bench = false
[[bin]] [[bin]]
name = "aoc2018" name = "aoc2018"
path = "src/main.rs" path = "src/main.rs"
bench = false
[[bench]]
name = "bench"
harness = false

View file

@ -0,0 +1,17 @@
[package]
name = "aoc2018_bench"
version = "0.1.0"
authors = ["Antoine Martin <antoine97.martin@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
aoc2018 = { path = "../" }
[dev-dependencies]
criterion = "0.3"
[[bench]]
name = "aoc2018_bench"
harness = false

View file

@ -6,24 +6,13 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dev-dependencies]
criterion = "0.3"
[dependencies] [dependencies]
aoc = { path = "../aoc" } aoc = { path = "../aoc" }
anyhow = "1.0" anyhow = "1.0"
[lib] [lib]
path = "src/lib.rs" path = "src/lib.rs"
bench = false
[[bin]] [[bin]]
name = "aoc2019" name = "aoc2019"
path = "src/main.rs" path = "src/main.rs"
bench = false
[[bench]]
name = "bench"
harness = false

View file

@ -0,0 +1,17 @@
[package]
name = "aoc2019_bench"
version = "0.1.0"
authors = ["Antoine Martin <antoine97.martin@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
aoc2019 = { path = "../" }
[dev-dependencies]
criterion = "0.3"
[[bench]]
name = "aoc2019_bench"
harness = false

View file

@ -6,25 +6,13 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dev-dependencies]
criterion = "0.3"
[dependencies] [dependencies]
aoc = { path = "../aoc" } aoc = { path = "../aoc" }
anyhow = "1.0" anyhow = "1.0"
[lib] [lib]
path = "src/lib.rs" path = "src/lib.rs"
bench = false
[[bin]] [[bin]]
name = "aoc2020" name = "aoc2020"
path = "src/main.rs" path = "src/main.rs"
bench = false
[[bench]]
name = "bench"
harness = false

View file

@ -0,0 +1,17 @@
[package]
name = "aoc2020_bench"
version = "0.1.0"
authors = ["Antoine Martin <antoine97.martin@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
aoc2020 = { path = "../" }
[dev-dependencies]
criterion = "0.3"
[[bench]]
name = "aoc2020_bench"
harness = false