diff options
| author | g3xzh <g3xzh@yahoo.com> | 2013-12-25 02:56:59 +0200 |
|---|---|---|
| committer | g3xzh <g3xzh@yahoo.com> | 2013-12-30 22:59:48 +0200 |
| commit | 9f1adf07ad3033238d6041c70df1159dd10b8aa3 (patch) | |
| tree | aa25a7d55c115976123f2118b10edaa094c394c6 /src/libstd/path | |
| parent | b8c87fd9fe649d3211bb53754fb692a825ecfdff (diff) | |
| download | rust-9f1adf07ad3033238d6041c70df1159dd10b8aa3.tar.gz rust-9f1adf07ad3033238d6041c70df1159dd10b8aa3.zip | |
Add more benchmark tests to path/posix
Benchmark testing `is_ancestor_of` and `path_relative_from`
Diffstat (limited to 'src/libstd/path')
| -rw-r--r-- | src/libstd/path/posix.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/libstd/path/posix.rs b/src/libstd/path/posix.rs index 3f2535765dd..d149634a396 100644 --- a/src/libstd/path/posix.rs +++ b/src/libstd/path/posix.rs @@ -1404,4 +1404,45 @@ mod bench { posix_home_path.ends_with_path(&Path::new("jome")); }); } + + #[bench] + fn is_ancestor_of_path_with_10_dirs(bh: &mut BenchHarness) { + let path = Path::new("/home/1/2/3/4/5/6/7/8/9"); + let mut sub = path.clone(); + sub.pop(); + bh.iter(|| { + path.is_ancestor_of(&sub); + }); + } + + #[bench] + fn path_relative_from_forward(bh: &mut BenchHarness) { + let path = Path::new("/a/b/c"); + let mut other = path.clone(); + other.pop(); + bh.iter(|| { + path.path_relative_from(&other); + }); + } + + #[bench] + fn path_relative_from_same_level(bh: &mut BenchHarness) { + let path = Path::new("/a/b/c"); + let mut other = path.clone(); + other.pop(); + other.push("d"); + bh.iter(|| { + path.path_relative_from(&other); + }); + } + + #[bench] + fn path_relative_from_backward(bh: &mut BenchHarness) { + let path = Path::new("/a/b"); + let mut other = path.clone(); + other.push("c"); + bh.iter(|| { + path.path_relative_from(&other); + }); + } } |
