aboutsummaryrefslogtreecommitdiffstats
path: root/components/std_test_override/lib.rs
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2018-10-07 12:13:51 +0200
committerSimon Sapin <simon.sapin@exyr.org>2018-10-07 13:27:23 +0200
commit1f7ebfc8a2977a54d6ee8cd1777b1cdb410ac719 (patch)
treef0ed93650f3143536c59077c5bd81064ce160a47 /components/std_test_override/lib.rs
parent76ddbe4d7afd48b83b23f3fd0cff47b214a0a290 (diff)
downloadservo-1f7ebfc8a2977a54d6ee8cd1777b1cdb410ac719.tar.gz
servo-1f7ebfc8a2977a54d6ee8cd1777b1cdb410ac719.zip
Make `mach test-unit` not recompile components after `mach build`
Previously, the `tests` feature flag of the `embedder_traits` crate caused it and every crate recursively depending on it to be built twice. This feature flag was used to provide a specific set of "resources" when running tests. Instead, this commits overrides the `main()` function of the test harness to change resources at runtime before running any test. This is done by adding a dependency that has `name = "test"` in its `[lib]` section of `Cargo.toml`. This overrides the crate found by `extern crate test;` in code generated by `rustc --test`.
Diffstat (limited to 'components/std_test_override/lib.rs')
-rw-r--r--components/std_test_override/lib.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/components/std_test_override/lib.rs b/components/std_test_override/lib.rs
new file mode 100644
index 00000000000..8d38f6835e5
--- /dev/null
+++ b/components/std_test_override/lib.rs
@@ -0,0 +1,15 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#![feature(test)]
+
+extern crate embedder_traits;
+extern crate test;
+
+pub use test::*;
+
+pub fn test_main_static(tests: &[&TestDescAndFn]) {
+ embedder_traits::resources::set_for_tests();
+ test::test_main_static(tests);
+}