Fixes#4086
Lets `./mach test` take a file or directory as an argument, and infers `test-content`, `test-wpt`, or `test-ref` from the file's path.
Usage Example:
```
$ ./mach test tests/wpt/web-platform-tests/dom/interfaces.html
0:00.27 LOG: MainThread INFO Using 1 client processes
...
```
Note that while there is no functionality for `test-ref` to accept individual files, `./mach test tests/ref` will still trigger `test-ref`.
Passing arguments properly through python would have been ugly (though maybe there are some mach internals I could have taken advantage of), so this instead runs a new mach process and lets the individual test suites manage their arguments like normal.
Usage Example:
```
$ ./mach test tests/wpt/web-platform-tests/dom/interfaces.html
0:00.27 LOG: MainThread INFO Using 1 client processes
...
```
Note that while there is no functionality for `test-ref` to accept
individual files, `./mach test tests/ref` will still trigger `test-ref`.
Previously, if the attribute was not parsed into a token list, and the
tokens() method returned None, DOMTokenList#contains would silently return
false. This issue was encountered in
<https://github.com/servo/servo/pull/4076> and took quite some time to
figure out.
Previously, if the attribute was not parsed into a token list, and the
tokens() method returned None, DOMTokenList#contains would silently return
false. This issue was encountered in
<https://github.com/servo/servo/pull/4076> and took quite some time to
figure out.
Updates the way mach mixes unrecognized arguments and predefined arguments (see [mozilla bug 1076649](https://bugzilla.mozilla.org/show_bug.cgi?id=1076649) for details on this change), and also adds support for argument groupings (see [1077272](https://bugzilla.mozilla.org/show_bug.cgi?id=1077272)).
I was running into some annoyances when trying to implement a change that would allow a `--debug` flag to be used in `./mach run` for running Servo through a debugger (basically, the same behavior described under "How do I run Mozilla under gdb?" [here](https://developer.mozilla.org/en-US/docs/Debugging_Mozilla_with_gdb)). This change should make those annoyances go away, and as far as I can tell, it doesn't have an impact on the way any of the existing commands are used.
Created an `IsInterval` enum to improve readability and remove the need for `true // is_interval`
I'm still fairly new to rust. I briefly looked for a way to implement boolean comparisons of the enum but didn't figure out a way.
Also I'm not attached to any of the names. Let me know what I can fix :)
Fixes#4055
This PR allows `./mach test-wpt` to be run (from /path/to/servo) with a single relative path to some wpt test.
For example:
```
./mach test-wpt tests/wpt/web-platform-tests/dom/sometest.html
```
The argument `tests/wpt/web-platform-tests/dom/sometest.html` is passed on as `--include dom/sometest.html`.
- Update glutin, and update rust-cocoa to use the servo fork now that upstream is up to date.
- Some events and resizing are still not working correctly on mac yet.