aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock11
-rw-r--r--components/bluetooth/Cargo.toml3
-rw-r--r--components/bluetooth_traits/Cargo.toml3
-rw-r--r--components/compositing/Cargo.toml3
-rw-r--r--components/config/Cargo.toml2
-rw-r--r--components/constellation/Cargo.toml3
-rw-r--r--components/embedder_traits/Cargo.toml3
-rw-r--r--components/embedder_traits/resources.rs19
-rw-r--r--components/layout_thread/Cargo.toml3
-rw-r--r--components/net/Cargo.toml2
-rw-r--r--components/net_traits/Cargo.toml2
-rw-r--r--components/script/Cargo.toml3
-rw-r--r--components/script_traits/Cargo.toml3
-rw-r--r--components/servo/Cargo.toml3
-rw-r--r--components/std_test_override/Cargo.toml13
-rw-r--r--components/std_test_override/lib.rs15
-rw-r--r--tests/unit/style/Cargo.toml1
17 files changed, 50 insertions, 42 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 35c513184b9..35444b693a6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2316,6 +2316,7 @@ dependencies = [
"servo_channel 0.0.1",
"servo_config 0.0.1",
"servo_url 0.0.1",
+ "std_test_override 0.0.1",
"threadpool 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2355,6 +2356,7 @@ dependencies = [
"servo_arc 0.1.1",
"servo_config 0.0.1",
"servo_url 0.0.1",
+ "std_test_override 0.0.1",
"url 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_api 0.57.2 (git+https://github.com/servo/webrender)",
@@ -3392,6 +3394,7 @@ dependencies = [
"serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_geometry 0.0.1",
"servo_url 0.0.1",
+ "std_test_override 0.0.1",
"url 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -3526,6 +3529,13 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
+name = "std_test_override"
+version = "0.0.1"
+dependencies = [
+ "embedder_traits 0.0.1",
+]
+
+[[package]]
name = "string_cache"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3647,6 +3657,7 @@ dependencies = [
"servo_config 0.0.1",
"servo_url 0.0.1",
"size_of_test 0.0.1",
+ "std_test_override 0.0.1",
"style 0.0.1",
"style_traits 0.0.1",
]
diff --git a/components/bluetooth/Cargo.toml b/components/bluetooth/Cargo.toml
index 91271503090..0d77e584ba1 100644
--- a/components/bluetooth/Cargo.toml
+++ b/components/bluetooth/Cargo.toml
@@ -19,6 +19,3 @@ log = "0.4"
servo_config = {path = "../config"}
servo_rand = {path = "../rand"}
uuid = {version = "0.6", features = ["v4"]}
-
-[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"]}
diff --git a/components/bluetooth_traits/Cargo.toml b/components/bluetooth_traits/Cargo.toml
index 5446a996ebf..f21f289898c 100644
--- a/components/bluetooth_traits/Cargo.toml
+++ b/components/bluetooth_traits/Cargo.toml
@@ -14,6 +14,3 @@ ipc-channel = "0.11"
regex = "1.0"
serde = "1.0"
embedder_traits = { path = "../embedder_traits" }
-
-[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"] }
diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml
index 3f2096d9557..afef7de4c03 100644
--- a/components/compositing/Cargo.toml
+++ b/components/compositing/Cargo.toml
@@ -37,6 +37,3 @@ webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[build-dependencies]
toml = "0.4.5"
-
-[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"]}
diff --git a/components/config/Cargo.toml b/components/config/Cargo.toml
index 60878c67b48..648a048a03b 100644
--- a/components/config/Cargo.toml
+++ b/components/config/Cargo.toml
@@ -26,7 +26,7 @@ url = "1.2"
[dev-dependencies]
env_logger = "0.5"
-embedder_traits = { path = "../embedder_traits", features = ["tests"] }
+std_test_override = { path = "../std_test_override" }
[target.'cfg(not(target_os = "android"))'.dependencies]
dirs = "1.0"
diff --git a/components/constellation/Cargo.toml b/components/constellation/Cargo.toml
index 599f9f7e6e0..6daae904881 100644
--- a/components/constellation/Cargo.toml
+++ b/components/constellation/Cargo.toml
@@ -44,6 +44,3 @@ webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios")))'.dependencies]
gaol = {git = "https://github.com/servo/gaol"}
-
-[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"] }
diff --git a/components/embedder_traits/Cargo.toml b/components/embedder_traits/Cargo.toml
index da187d7d370..bcb0b1d2084 100644
--- a/components/embedder_traits/Cargo.toml
+++ b/components/embedder_traits/Cargo.toml
@@ -9,9 +9,6 @@ publish = false
name = "embedder_traits"
path = "lib.rs"
-[features]
-tests = []
-
[dependencies]
ipc-channel = "0.11"
lazy_static = "1"
diff --git a/components/embedder_traits/resources.rs b/components/embedder_traits/resources.rs
index b38b36181a0..9aebc11d06d 100644
--- a/components/embedder_traits/resources.rs
+++ b/components/embedder_traits/resources.rs
@@ -3,25 +3,21 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use std::path::PathBuf;
-use std::sync::RwLock;
+use std::sync::{Once, RwLock};
lazy_static! {
- static ref RES: RwLock<Option<Box<ResourceReaderMethods + Sync + Send>>> = RwLock::new({
- #[cfg(not(feature = "tests"))]
- {
- None
- }
- #[cfg(feature = "tests")]
- {
- Some(resources_for_tests())
- }
- });
+ static ref RES: RwLock<Option<Box<ResourceReaderMethods + Sync + Send>>> = RwLock::new(None);
}
pub fn set(reader: Box<ResourceReaderMethods + Sync + Send>) {
*RES.write().unwrap() = Some(reader);
}
+pub fn set_for_tests() {
+ static ONCE: Once = Once::new();
+ ONCE.call_once(|| set(resources_for_tests()));
+}
+
pub fn read_bytes(res: Resource) -> Vec<u8> {
RES.read()
.unwrap()
@@ -71,7 +67,6 @@ pub trait ResourceReaderMethods {
fn sandbox_access_files_dirs(&self) -> Vec<PathBuf>;
}
-#[cfg(feature = "tests")]
fn resources_for_tests() -> Box<ResourceReaderMethods + Sync + Send> {
use std::env;
use std::fs::File;
diff --git a/components/layout_thread/Cargo.toml b/components/layout_thread/Cargo.toml
index 2c76600dbfb..23fbf91e677 100644
--- a/components/layout_thread/Cargo.toml
+++ b/components/layout_thread/Cargo.toml
@@ -53,6 +53,3 @@ servo_url = {path = "../url"}
style = {path = "../style"}
style_traits = {path = "../style_traits"}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
-
-[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"] }
diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml
index aca08703bae..ef58b6f018d 100644
--- a/components/net/Cargo.toml
+++ b/components/net/Cargo.toml
@@ -51,7 +51,7 @@ webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
ws = { version = "0.7", features = ["ssl"] }
[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"] }
+std_test_override = { path = "../std_test_override" }
[[test]]
name = "main"
diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml
index 9ae5042be69..2cff5518a0b 100644
--- a/components/net_traits/Cargo.toml
+++ b/components/net_traits/Cargo.toml
@@ -33,4 +33,4 @@ uuid = {version = "0.6", features = ["v4", "serde"]}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"] }
+std_test_override = { path = "../std_test_override" }
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index ca859bb472a..913edf25f2e 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -109,6 +109,3 @@ webvr_traits = {path = "../webvr_traits"}
[target.'cfg(not(target_os = "ios"))'.dependencies]
mozangle = "0.1"
-
-[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"] }
diff --git a/components/script_traits/Cargo.toml b/components/script_traits/Cargo.toml
index 42a46ac3bdf..397ac72cc17 100644
--- a/components/script_traits/Cargo.toml
+++ b/components/script_traits/Cargo.toml
@@ -36,6 +36,3 @@ time = "0.1.12"
url = "1.2"
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
webvr_traits = {path = "../webvr_traits"}
-
-[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"]}
diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml
index 7d2a7895215..30d09e76e5c 100644
--- a/components/servo/Cargo.toml
+++ b/components/servo/Cargo.toml
@@ -72,6 +72,3 @@ webvr_traits = {path = "../webvr_traits"}
[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios")))'.dependencies]
gaol = {git = "https://github.com/servo/gaol"}
-
-[dev-dependencies]
-embedder_traits = { path = "../embedder_traits", features = ["tests"] }
diff --git a/components/std_test_override/Cargo.toml b/components/std_test_override/Cargo.toml
new file mode 100644
index 00000000000..32ecaaa6d65
--- /dev/null
+++ b/components/std_test_override/Cargo.toml
@@ -0,0 +1,13 @@
+[package]
+name = "std_test_override"
+version = "0.0.1"
+authors = ["The Servo Project Developers"]
+license = "MPL-2.0"
+publish = false
+
+[lib]
+name = "test"
+path = "lib.rs"
+
+[dependencies]
+embedder_traits = { path = "../embedder_traits" }
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);
+}
diff --git a/tests/unit/style/Cargo.toml b/tests/unit/style/Cargo.toml
index 1b194970da2..8057a95c0ba 100644
--- a/tests/unit/style/Cargo.toml
+++ b/tests/unit/style/Cargo.toml
@@ -26,3 +26,4 @@ servo_url = {path = "../../../components/url"}
size_of_test = {path = "../../../components/size_of_test"}
style = {path = "../../../components/style"}
style_traits = {path = "../../../components/style_traits"}
+std_test_override = { path = "../../../components/std_test_override" }