diff options
| author | g3xzh <g3xzh@yahoo.com> | 2013-11-27 11:39:07 +0200 |
|---|---|---|
| committer | g3xzh <g3xzh@yahoo.com> | 2013-11-27 11:39:07 +0200 |
| commit | 26ba64dca9486a910a6e191d27841ebff800928c (patch) | |
| tree | 96b7a2931cfe815a595d906946c3103604c12b9a /src/libstd/path | |
| parent | 82d9033b67d618d5bc51e9b22190c369214db4b9 (diff) | |
| download | rust-26ba64dca9486a910a6e191d27841ebff800928c.tar.gz rust-26ba64dca9486a910a6e191d27841ebff800928c.zip | |
Add benchmark tests to path/posix
I have written some benchmark tests to `push`, `push_many`, `join`, `join_many` and `ends_with_path`.
Diffstat (limited to 'src/libstd/path')
| -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")); + }); + } +} |
