aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-09-20 15:47:27 -0500
committerGitHub <noreply@github.com>2016-09-20 15:47:27 -0500
commit66c736194d1a6d3af1303a070aa96fec4534187c (patch)
tree4aa717bb6993740d93616c054139d194ac84673c
parent0d7e747acb7815dfc0cabeed8bd1df7d057f289e (diff)
parent1d497828a76ae0739463ef6a196fa4b98b06173c (diff)
downloadservo-66c736194d1a6d3af1303a070aa96fec4534187c.tar.gz
servo-66c736194d1a6d3af1303a070aa96fec4534187c.zip
Auto merge of #13335 - Manishearth:stylo-tests, r=emilio
Add unit test crate for stylo @canaltinova needs this for his mask work -- we need a way to test stylo code (or style code that's conditionally compiled out for gecko) We can add this to the CI as well. r? @emilio <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13335) <!-- Reviewable:end -->
-rw-r--r--ports/geckolib/Cargo.lock13
-rw-r--r--ports/geckolib/Cargo.toml3
-rw-r--r--ports/geckolib/lib.rs1
-rw-r--r--python/servo/testing_commands.py21
-rw-r--r--tests/unit/stylo/Cargo.toml17
-rw-r--r--tests/unit/stylo/lib.rs11
-rw-r--r--tests/unit/stylo/sanity_checks.rs (renamed from ports/geckolib/sanity_checks.rs)2
7 files changed, 65 insertions, 3 deletions
diff --git a/ports/geckolib/Cargo.lock b/ports/geckolib/Cargo.lock
index dd84fdf5284..8581961e329 100644
--- a/ports/geckolib/Cargo.lock
+++ b/ports/geckolib/Cargo.lock
@@ -14,6 +14,7 @@ dependencies = [
"selectors 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"style_traits 0.0.1",
+ "stylo_tests 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -52,6 +53,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+ "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -394,6 +396,17 @@ dependencies = [
]
[[package]]
+name = "stylo_tests"
+version = "0.0.1"
+dependencies = [
+ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gecko_bindings 0.0.1",
+ "style 0.0.1",
+ "style_traits 0.0.1",
+]
+
+[[package]]
name = "thread-id"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/ports/geckolib/Cargo.toml b/ports/geckolib/Cargo.toml
index bcf38096e85..7a6b83d1e18 100644
--- a/ports/geckolib/Cargo.toml
+++ b/ports/geckolib/Cargo.toml
@@ -23,3 +23,6 @@ selectors = "0.13"
style = {path = "../../components/style", features = ["gecko"]}
style_traits = {path = "../../components/style_traits"}
url = "1.2"
+
+[dev-dependencies]
+stylo_tests = {path = "../../tests/unit/stylo"}
diff --git a/ports/geckolib/lib.rs b/ports/geckolib/lib.rs
index 7bfea1b9bcd..337332c4da8 100644
--- a/ports/geckolib/lib.rs
+++ b/ports/geckolib/lib.rs
@@ -22,7 +22,6 @@ mod snapshot;
mod snapshot_helpers;
#[allow(non_snake_case)]
pub mod glue;
-mod sanity_checks;
mod traversal;
mod wrapper;
diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py
index 97bf8635190..a3206b745f3 100644
--- a/python/servo/testing_commands.py
+++ b/python/servo/testing_commands.py
@@ -25,7 +25,7 @@ from mach.decorators import (
Command,
)
-from servo.command_base import CommandBase, call, check_call, host_triple
+from servo.command_base import CommandBase, call, cd, check_call, host_triple
from wptrunner import wptcommandline
from update import updatecommandline
from servo_tidy import tidy
@@ -208,6 +208,8 @@ class MachCommands(CommandBase):
if not packages:
packages = set(os.listdir(path.join(self.context.topdir, "tests", "unit")))
+ packages.remove('stylo')
+
args = ["cargo", "test"]
for crate in packages:
args += ["-p", "%s_tests" % crate]
@@ -232,6 +234,23 @@ class MachCommands(CommandBase):
if result != 0:
return result
+ @Command('test-stylo',
+ description='Run stylo unit tests',
+ category='testing')
+ def test_stylo(self):
+ self.set_use_stable_rust()
+ self.ensure_bootstrapped()
+
+ env = self.build_env()
+ env["RUST_BACKTRACE"] = "1"
+ env["CARGO_TARGET_DIR"] = path.join(self.context.topdir, "target", "geckolib").encode("UTF-8")
+
+ with cd(path.join("ports", "geckolib")):
+ result = call(["cargo", "test", "-p", "stylo_tests"], env=env)
+
+ if result != 0:
+ return result
+
@Command('test-compiletest',
description='Run compiletests',
category='testing')
diff --git a/tests/unit/stylo/Cargo.toml b/tests/unit/stylo/Cargo.toml
new file mode 100644
index 00000000000..7989417eb8b
--- /dev/null
+++ b/tests/unit/stylo/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+name = "stylo_tests"
+version = "0.0.1"
+authors = ["The Servo Project Developers"]
+license = "MPL-2.0"
+
+[lib]
+name = "stylo_tests"
+path = "lib.rs"
+doctest = false
+
+[dependencies]
+app_units = "0.3"
+cssparser = {version = "0.7", features = ["heap_size"]}
+gecko_bindings = {path = "../../../ports/geckolib/gecko_bindings"}
+style = {path = "../../../components/style", features = ["gecko"]}
+style_traits = {path = "../../../components/style_traits"}
diff --git a/tests/unit/stylo/lib.rs b/tests/unit/stylo/lib.rs
new file mode 100644
index 00000000000..62e96c3588f
--- /dev/null
+++ b/tests/unit/stylo/lib.rs
@@ -0,0 +1,11 @@
+/* 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/. */
+
+extern crate app_units;
+extern crate cssparser;
+extern crate gecko_bindings;
+extern crate style;
+extern crate style_traits;
+
+mod sanity_checks;
diff --git a/ports/geckolib/sanity_checks.rs b/tests/unit/stylo/sanity_checks.rs
index 8809b6a644a..74890856f80 100644
--- a/ports/geckolib/sanity_checks.rs
+++ b/tests/unit/stylo/sanity_checks.rs
@@ -62,7 +62,7 @@ fn assert_basic_pseudo_elements() {
};
}
- include!("../../components/style/generated/gecko_pseudo_element_helper.rs");
+ include!("../../../components/style/generated/gecko_pseudo_element_helper.rs");
assert!(saw_before);
assert!(saw_after);