Skip to content

Commit

Permalink
servo: Merge #18489 - align selectors's features in geckolib and styl…
Browse files Browse the repository at this point in the history
…o_tests (from froydnj:geckolib-feature-alignment); r=froydnj

Gecko would like to turn on the stylo layout tests (tests/unit/stylo) in
Gecko CI.  The plan for doing this is to add the tests as a
dev-dependency of Gecko's main Rust library, from which `cargo test` can
be run in the usual fashion.

Doing this creates problems for normal development, because the stylo
tests need the `selectors` crate to be compiled with `gecko_like_types`,
whereas the `geckolib` crate does not.  So if we compile `geckolib` in a
non-test build configuration, the `selectors` crate is compiled without
`gecko_like_types`...but then if we compile `geckolib` in a test build
configuration, cargo will evict the previous rlib for the `selectors`
crate and replace it with a `selectors` compiled with gecko_like_types.
And then compiling `geckolib` in a non-test configuration repeats the
process, and so forth.

Needless to say, this is highly annoying behavior.  It is due to a bug
in cargo:

rust-lang/cargo#3923

but it's not known when that bug will get fixed.  In the meantime, we
can just make sure that geckolib's `selectors` is compiled with the same
features as the `selectors` crate in the stylo tests.

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

Source-Repo: https://github.com/servo/servo
Source-Revision: 1aa8be392b0ab8e7a8426f525361b40b69d70b4f
  • Loading branch information
froydnj committed Sep 13, 2017
1 parent 33043ab commit 3d7206e
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion servo/ports/geckolib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ log = {version = "0.3.5", features = ["release_max_level_info"]}
malloc_size_of = {path = "../../components/malloc_size_of"}
nsstring_vendor = {path = "../../components/style/gecko_bindings/nsstring_vendor"}
parking_lot = "0.4"
selectors = {path = "../../components/selectors"}
# Turn on gecko_like_types because of so that crates which use this
# crate and also dev-depend on stylo_tests get reasonable behavior
# during rebuilds. See https://github.com/rust-lang/cargo/issues/3923
# for the cargo problem behind this.
selectors = {path = "../../components/selectors", features = ["gecko_like_types"]}
servo_arc = {path = "../../components/servo_arc"}
style = {path = "../../components/style", features = ["gecko"]}
style_traits = {path = "../../components/style_traits"}
Expand Down

0 comments on commit 3d7206e

Please sign in to comment.