diff options
| author | bors <bors@rust-lang.org> | 2013-11-27 19:47:15 -0800 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-11-27 19:47:15 -0800 |
| commit | 68e3292fd79230f00745dc7608f4d80329c776bb (patch) | |
| tree | 97b7e7ea2fe8aa4525d6bcfeef7ecf6e99d08261 /src/libstd | |
| parent | db5b51ae634830ac07b199a0842ef839d3809d8e (diff) | |
| parent | 26ba64dca9486a910a6e191d27841ebff800928c (diff) | |
| download | rust-68e3292fd79230f00745dc7608f4d80329c776bb.tar.gz rust-68e3292fd79230f00745dc7608f4d80329c776bb.zip | |
auto merge of #10691 : g3xzh/rust/benchm, r=cmr
I have written some benchmark tests to `push`, `push_many`, `join`, `join_many` and `ends_with_path`. Let me know what you think (@cmr). Thanks in advance.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/path/posix.rs | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/libstd/path/posix.rs b/src/libstd/path/posix.rs index ddfb43ed56f..9b6b82266a2 100644 --- a/src/libstd/path/posix.rs +++ b/src/libstd/path/posix.rs @@ -1319,3 +1319,89 @@ mod tests { // the full set of tests } } + +#[cfg(test)] +mod bench { + use extra::test::BenchHarness; + use super::*; + + #[bench] + fn join_home_dir(bh: &mut BenchHarness) { + let posix_path = Path::new("/"); + bh.iter(|| { + posix_path.join("home"); + }); + } + + #[bench] + fn join_abs_path_home_dir(bh: &mut BenchHarness) { + let posix_path = Path::new("/"); + bh.iter(|| { + posix_path.join("/home"); + }); + } + + #[bench] + fn join_many_home_dir(bh: &mut BenchHarness) { + let posix_path = Path::new("/"); + bh.iter(|| { + posix_path.join_many(&["home"]); + }); + } + + #[bench] + fn join_many_abs_path_home_dir(bh: &mut BenchHarness) { + let posix_path = Path::new("/"); + bh.iter(|| { + posix_path.join_many(&["/home"]); + }); + } + + #[bench] + fn push_home_dir(bh: &mut BenchHarness) { + let mut posix_path = Path::new("/"); + bh.iter(|| { + posix_path.push("home"); + }); + } + + #[bench] + fn push_abs_path_home_dir(bh: &mut BenchHarness) { + let mut posix_path = Path::new("/"); + bh.iter(|| { + posix_path.push("/home"); + }); + } + + #[bench] + fn push_many_home_dir(bh: &mut BenchHarness) { + let mut posix_path = Path::new("/"); + bh.iter(|| { + posix_path.push_many(&["home"]); + }); + } + + #[bench] + fn push_many_abs_path_home_dir(bh: &mut BenchHarness) { + let mut posix_path = Path::new("/"); + bh.iter(|| { + posix_path.push_many(&["/home"]); + }); + } + + #[bench] + fn ends_with_path_home_dir(bh: &mut BenchHarness) { + let posix_home_path = Path::new("/home"); + bh.iter(|| { + posix_home_path.ends_with_path(&Path::new("home")); + }); + } + + #[bench] + fn ends_with_path_missmatch_jome_home(bh: &mut BenchHarness) { + let posix_home_path = Path::new("/home"); + bh.iter(|| { + posix_home_path.ends_with_path(&Path::new("jome")); + }); + } +} |
