about summary refs log tree commit diff
path: root/src/libstd/path
diff options
context:
space:
mode:
authorg3xzh <g3xzh@yahoo.com>2013-11-27 11:39:07 +0200
committerg3xzh <g3xzh@yahoo.com>2013-11-27 11:39:07 +0200
commit26ba64dca9486a910a6e191d27841ebff800928c (patch)
tree96b7a2931cfe815a595d906946c3103604c12b9a /src/libstd/path
parent82d9033b67d618d5bc51e9b22190c369214db4b9 (diff)
downloadrust-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.rs86
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"));
+        });
+    }
+}