aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2017-05-18 17:17:29 +0200
committerSimon Sapin <simon.sapin@exyr.org>2017-05-18 17:17:29 +0200
commit5e60865d1922a3a9cb813c4c7b4c9908604adfcd (patch)
treebea48a42235a55b35d82b75142015fddf8240d8d
parent864f5509d8d82609b1be7c9571395fbefa84fa9e (diff)
downloadservo-5e60865d1922a3a9cb813c4c7b4c9908604adfcd.tar.gz
servo-5e60865d1922a3a9cb813c4c7b4c9908604adfcd.zip
Use size_of_test! macro in style and stylo tests.
-rw-r--r--Cargo.lock2
-rw-r--r--components/style/properties/properties.mako.rs24
-rw-r--r--tests/unit/style/Cargo.toml3
-rw-r--r--tests/unit/style/lib.rs1
-rw-r--r--tests/unit/style/size_of.rs7
-rw-r--r--tests/unit/stylo/Cargo.toml3
-rw-r--r--tests/unit/stylo/lib.rs1
-rw-r--r--tests/unit/stylo/size_of.rs5
8 files changed, 12 insertions, 34 deletions
diff --git a/Cargo.lock b/Cargo.lock
index b21ff19f356..fbb8b7a7213 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2872,6 +2872,7 @@ dependencies = [
"servo_atoms 0.0.1",
"servo_config 0.0.1",
"servo_url 0.0.1",
+ "size_of_test 0.0.1",
"style 0.0.1",
"style_traits 0.0.1",
]
@@ -2901,6 +2902,7 @@ dependencies = [
"libc 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.18.0",
+ "size_of_test 0.0.1",
"style 0.0.1",
"style_traits 0.0.1",
]
diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs
index 1f5c951d1f4..cc89cf1b648 100644
--- a/components/style/properties/properties.mako.rs
+++ b/components/style/properties/properties.mako.rs
@@ -2802,30 +2802,6 @@ macro_rules! longhand_properties_idents {
}
}
-/// Testing function to check the size of a PropertyDeclaration. We implement
-/// this here so that the code can be used by both servo and stylo unit tests.
-/// This is important because structs can have different sizes in stylo and
-/// servo.
-#[cfg(feature = "testing")]
-pub fn test_size_of_property_declaration() {
- use std::mem::size_of;
-
- let old = 32;
- let new = size_of::<PropertyDeclaration>();
- if new < old {
- panic!("Your changes have decreased the stack size of PropertyDeclaration enum from {} to {}. \
- Good work! Please update the size in components/style/properties/properties.mako.rs.",
- old, new)
- } else if new > old {
- panic!("Your changes have increased the stack size of PropertyDeclaration enum from {} to {}. \
- These enum is present in large quantities in the style, and increasing the size \
- may negatively affect style system performance. Please consider using `boxed=\"True\"` in \
- the longhand If you feel that the increase is necessary, update to the new size in \
- components/style/properties/properties.mako.rs.",
- old, new)
- }
-}
-
/// Testing function to check the size of all SpecifiedValues.
#[cfg(feature = "testing")]
pub fn test_size_of_specified_values() {
diff --git a/tests/unit/style/Cargo.toml b/tests/unit/style/Cargo.toml
index 6eeb9817c93..185b83b8c5c 100644
--- a/tests/unit/style/Cargo.toml
+++ b/tests/unit/style/Cargo.toml
@@ -24,6 +24,7 @@ rustc-serialize = "0.3"
selectors = {path = "../../../components/selectors"}
servo_atoms = {path = "../../../components/atoms"}
servo_config = {path = "../../../components/config"}
+servo_url = {path = "../../../components/url"}
+size_of_test = {path = "../../../components/size_of_test"}
style = {path = "../../../components/style"}
style_traits = {path = "../../../components/style_traits"}
-servo_url = {path = "../../../components/url"}
diff --git a/tests/unit/style/lib.rs b/tests/unit/style/lib.rs
index 9d6d2b8e8be..0f531673e19 100644
--- a/tests/unit/style/lib.rs
+++ b/tests/unit/style/lib.rs
@@ -17,6 +17,7 @@ extern crate selectors;
extern crate servo_atoms;
extern crate servo_config;
extern crate servo_url;
+#[macro_use] extern crate size_of_test;
extern crate style;
extern crate style_traits;
extern crate test;
diff --git a/tests/unit/style/size_of.rs b/tests/unit/style/size_of.rs
index f43163b82c6..c0b14276c24 100644
--- a/tests/unit/style/size_of.rs
+++ b/tests/unit/style/size_of.rs
@@ -2,10 +2,9 @@
* 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/. */
-#[test]
-fn size_of_property_declaration() {
- ::style::properties::test_size_of_property_declaration();
-}
+use style::properties;
+
+size_of_test!(test_size_of_property_declaration, properties::PropertyDeclaration, 32);
#[test]
fn size_of_specified_values() {
diff --git a/tests/unit/stylo/Cargo.toml b/tests/unit/stylo/Cargo.toml
index 46d9c6df281..23c14fc0a5b 100644
--- a/tests/unit/stylo/Cargo.toml
+++ b/tests/unit/stylo/Cargo.toml
@@ -19,9 +19,10 @@ atomic_refcell = "0.1"
cssparser = "0.13.3"
env_logger = "0.4"
euclid = "0.11"
+geckoservo = {path = "../../../ports/geckolib"}
libc = "0.2"
log = {version = "0.3.5", features = ["release_max_level_info"]}
selectors = {path = "../../../components/selectors", features = ["gecko_like_types"]}
+size_of_test = {path = "../../../components/size_of_test"}
style_traits = {path = "../../../components/style_traits"}
-geckoservo = {path = "../../../ports/geckolib"}
style = {path = "../../../components/style", features = ["gecko"]}
diff --git a/tests/unit/stylo/lib.rs b/tests/unit/stylo/lib.rs
index fedbba703b9..6527c90609f 100644
--- a/tests/unit/stylo/lib.rs
+++ b/tests/unit/stylo/lib.rs
@@ -8,6 +8,7 @@ extern crate env_logger;
extern crate geckoservo;
#[macro_use] extern crate log;
extern crate selectors;
+#[macro_use] extern crate size_of_test;
#[macro_use] extern crate style;
extern crate style_traits;
diff --git a/tests/unit/stylo/size_of.rs b/tests/unit/stylo/size_of.rs
index f8770a8842e..ce2e076ba86 100644
--- a/tests/unit/stylo/size_of.rs
+++ b/tests/unit/stylo/size_of.rs
@@ -19,10 +19,7 @@ fn size_of_selectors_dummy_types() {
assert_eq!(align_of::<dummies::Atom>(), align_of::<style::Atom>());
}
-#[test]
-fn size_of_property_declaration() {
- ::style::properties::test_size_of_property_declaration();
-}
+size_of_test!(test_size_of_property_declaration, style::properties::PropertyDeclaration, 32);
#[test]
fn size_of_specified_values() {