diff options
-rw-r--r-- | Cargo.lock | 11 | ||||
-rw-r--r-- | components/bluetooth/Cargo.toml | 3 | ||||
-rw-r--r-- | components/bluetooth_traits/Cargo.toml | 3 | ||||
-rw-r--r-- | components/compositing/Cargo.toml | 3 | ||||
-rw-r--r-- | components/config/Cargo.toml | 2 | ||||
-rw-r--r-- | components/constellation/Cargo.toml | 3 | ||||
-rw-r--r-- | components/embedder_traits/Cargo.toml | 3 | ||||
-rw-r--r-- | components/embedder_traits/resources.rs | 19 | ||||
-rw-r--r-- | components/layout_thread/Cargo.toml | 3 | ||||
-rw-r--r-- | components/net/Cargo.toml | 2 | ||||
-rw-r--r-- | components/net_traits/Cargo.toml | 2 | ||||
-rw-r--r-- | components/script/Cargo.toml | 3 | ||||
-rw-r--r-- | components/script_traits/Cargo.toml | 3 | ||||
-rw-r--r-- | components/servo/Cargo.toml | 3 | ||||
-rw-r--r-- | components/std_test_override/Cargo.toml | 13 | ||||
-rw-r--r-- | components/std_test_override/lib.rs | 15 | ||||
-rw-r--r-- | tests/unit/style/Cargo.toml | 1 |
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" } |