diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-09-20 15:47:27 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-20 15:47:27 -0500 |
commit | 66c736194d1a6d3af1303a070aa96fec4534187c (patch) | |
tree | 4aa717bb6993740d93616c054139d194ac84673c | |
parent | 0d7e747acb7815dfc0cabeed8bd1df7d057f289e (diff) | |
parent | 1d497828a76ae0739463ef6a196fa4b98b06173c (diff) | |
download | servo-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.lock | 13 | ||||
-rw-r--r-- | ports/geckolib/Cargo.toml | 3 | ||||
-rw-r--r-- | ports/geckolib/lib.rs | 1 | ||||
-rw-r--r-- | python/servo/testing_commands.py | 21 | ||||
-rw-r--r-- | tests/unit/stylo/Cargo.toml | 17 | ||||
-rw-r--r-- | tests/unit/stylo/lib.rs | 11 | ||||
-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); |