]> git.lizzy.rs Git - rust.git/commitdiff
Add benchmark tests to path/posix
authorg3xzh <g3xzh@yahoo.com>
Wed, 27 Nov 2013 09:39:07 +0000 (11:39 +0200)
committerg3xzh <g3xzh@yahoo.com>
Wed, 27 Nov 2013 09:39:07 +0000 (11:39 +0200)
I have written some benchmark tests to `push`, `push_many`, `join`,
`join_many` and `ends_with_path`.

src/libstd/path/posix.rs

index ddfb43ed56f8707f252b28a03e5e73570d773e20..9b6b82266a2af40005ad72819c5eba5103acea5c 100644 (file)
@@ -1319,3 +1319,89 @@ macro_rules! t(
         // 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"));
+        });
+    }
+}