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 -->
This commit is contained in:
bors-servo 2016-09-20 15:47:27 -05:00 committed by GitHub
commit 66c736194d
7 changed files with 65 additions and 3 deletions

View file

@ -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)",
]
@ -393,6 +395,17 @@ dependencies = [
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[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"

View file

@ -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"}

View file

@ -22,7 +22,6 @@ mod snapshot;
mod snapshot_helpers;
#[allow(non_snake_case)]
pub mod glue;
mod sanity_checks;
mod traversal;
mod wrapper;

View file

@ -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')

View file

@ -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"}

11
tests/unit/stylo/lib.rs Normal file
View file

@ -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;

View file

@ -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);