run test-stylo just after generating bindings at build time

NEW
Unassigned

Status

()

Core
CSS Parsing and Computation
P2
normal
6 months ago
2 months ago

People

(Reporter: heycam, Unassigned)

Tracking

(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [Stylo])

(Reporter)

Description

6 months ago
It would be great if we could run test-stylo automatically from the build, just after bindings are generated, and to have their failure be a build failure.  Ideally it would use the just-built style and geckolib crates, unlike doing a |cd servo/ && ./mach test-stylo|, which builds everything again under servo/.
Depends on: 1302028
Blocks: 1330412
No longer blocks: 1243581
Priority: -- → P2
Getting this on Nathan's radar. Nathan, do you think you'll have cycles for this sometime in Q2? It would be good to have this before we flip stylo on in Nightly.
Blocks: 1345321
No longer blocks: 1330412
Flags: needinfo?(nfroyd)
Summary: stylo: run test-stylo just after generating bindings at build time → run test-stylo just after generating bindings at build time
Whiteboard: [Stylo]
I might.  bug 1331022 is similar, but this bug is slightly different insofar as we want to run it on vendored crates, not just first-party ones.  Are the servo/servo test bots not sufficient in this case because they're not running bindgen'd code?
Flags: needinfo?(nfroyd)
(In reply to Nathan Froyd [:froydnj] from comment #2)
> I might.  bug 1331022 is similar, but this bug is slightly different insofar
> as we want to run it on vendored crates, not just first-party ones.

Are you counting the servo stuff as vendored?

It's worth noting that the only way in which the bindings are at all "vendored" is that build_gecko.rs lives in servo. But bug 1336540 proposes moving it to Gecko, which could kill two birds with one stone.


>  Are the
> servo/servo test bots not sufficient in this case because they're not
> running bindgen'd code?

The primary purpose of the test-stylo stuff is to run all the memory-layout tests that get generated with the bindings (i.e. [1]). That needs to run with every Gecko push, because it's possible to change Gecko headers to break bindgen without touching servo/ at all.


[1] http://searchfox.org/mozilla-central/rev/ee7cfd05d7d9f83b017dd54c2052a2ec19cbd48b/servo/components/style/gecko_bindings/structs_debug.rs#12150
You need to log in before you can comment on or make changes to this bug.