Commit graph

261 commits

Author SHA1 Message Date
wilmoz
adbc6d045b Add a mach command to upgrade wptrunner 2015-09-02 12:29:56 -05:00
bors-servo
18de1f2357 Auto merge of #7428 - Wafflespeanut:tidy, r=Ms2ger
tidy will now show its expectation of uses!

closes #7427

(pretty errors "inherited" from rust's type checker) :P

![screenshot](8cabfdaa-4d95-11e5-9101-14e62781e74e.png)

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7428)
<!-- Reviewable:end -->
2015-08-28 03:35:53 -06:00
Ravi Shankar
6ef5c8eec2 tidy will now show its expectation of uses 2015-08-28 13:14:45 +05:30
Dhananjay Nakrani
ecd7c8b034 Exclude minified js files and tests/jquery from 'mach grep'. 2015-08-26 11:09:13 -07:00
wilmoz
63851f2650 Forbid multiline imports 2015-08-25 12:27:42 -05:00
Ms2ger
13086abfdc Check the return code of cargo build (except on Android). 2015-08-25 16:32:51 +02:00
Corey Farwell
662b64ffe4 Make tidy search for files recursively again
In #7348 `os.walk` was replaced with `os.listdir`. The latter is not
recursive, which results in only the root directory files getting linted

The changes to `ignored_files` are needed because calling `os.walk(".")`
results in `./` getting prefixed before each path
2015-08-24 20:34:01 -04:00
João Oliveira
69ddedc568 update tidy.py remove collect_file_names:
call python os functions inline
2015-08-25 00:05:37 +01:00
bors-servo
b1f0357fce Auto merge of #7118 - g-k:tidy-check-unused-html-files, r=jdm
Add tidy check for unused reftest html files

Refs: https://github.com/servo/servo/issues/7078

Sample output:

```
$ time ./mach test-tidy
tests/ref/background_image_a.html not used or commented out in basic.list
tests/ref/background_image_ref.html not used or commented out in basic.list
tests/ref/canvas_linear_gradient_a.html not used or commented out in basic.list
tests/ref/canvas_linear_gradient_ref.html not used or commented out in basic.list
tests/ref/canvas_radial_gradient_a.html not used or commented out in basic.list
tests/ref/canvas_radial_gradient_ref.html not used or commented out in basic.list
tests/ref/inline_border_a.html not used or commented out in basic.list
tests/ref/inline_border_b.html not used or commented out in basic.list
tests/ref/inline_text_align_a.html not used or commented out in basic.list
tests/ref/inline_text_align_b.html not used or commented out in basic.list
tests/ref/link_style_dynamic_addition.html not used or commented out in basic.list
tests/ref/link_style_dynamic_addition_ref.html not used or commented out in basic.list
tests/ref/overflow_position_abs_inside_normal_a.html not used or commented out in basic.list
tests/ref/overflow_position_abs_inside_normal_b.html not used or commented out in basic.list
tests/ref/overflow_position_abs_simple_a.html not used or commented out in basic.list
tests/ref/overflow_position_abs_simple_b.html not used or commented out in basic.list
tests/ref/position_fixed_a.html not used or commented out in basic.list
tests/ref/position_fixed_b.html not used or commented out in basic.list
tests/ref/position_fixed_simple_a.html not used or commented out in basic.list
tests/ref/position_fixed_simple_b.html not used or commented out in basic.list
tests/ref/position_fixed_static_y_a.html not used or commented out in basic.list
tests/ref/position_fixed_static_y_b.html not used or commented out in basic.list
tests/ref/style_is_in_doc.html not used or commented out in basic.list
tests/ref/style_is_in_doc_ref.html not used or commented out in basic.list
tests/ref/table_specified_width_a.html not used or commented out in basic.list
tests/ref/table_specified_width_ref.html not used or commented out in basic.list
tests/ref/text_decoration_propagation_a.html not used or commented out in basic.list
tests/ref/text_decoration_propagation_b.html not used or commented out in basic.list
tests/ref/text_shadow_multiple_shadows_a.html not used or commented out in basic.list
tests/ref/text_shadow_multiple_shadows_ref.html not used or commented out in basic.list
tests/ref/viewport_percentage_vmin_vmax_b.html not used or commented out in basic.list
tests/ref/viewport_percentage_vw_vh_b.html not used or commented out in basic.list
tests/ref/white_space_intrinsic_sizes_a.html not used or commented out in basic.list
tests/ref/white_space_intrinsic_sizes_ref.html not used or commented out in basic.list
tests/ref/fonts/takao-p-gothic/COPYING.html not used or commented out in basic.list
tests/ref/iframe/multiple_external_child.html not used or commented out in basic.list
...
```

I thought it might be helpful to say which files aren't used in `basic.list`.

`./mach test-tidy` is a second or two slower on my laptop.
Not sure if this counts as a warning or an error that should return 1.
Not sure whether unused file output should go before or after the line specific errors.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7118)
<!-- Reviewable:end -->
2015-08-24 16:03:05 -06:00
OneKorg
07cde59535 Mention max length in tidy check_length. Fixes #7309 2015-08-21 11:26:13 -07:00
Corey Farwell
2ab43bea5d Utilize Python context managers for opening/closing files
In some of these cases, files were not being closed
2015-08-21 11:15:17 -04:00
Johann Tuffe
009f6f63ad check for uses to be sorted 2015-08-20 20:47:25 +08:00
Greg Guthe
8b4b9ed99b Add tidy check for unused reftest html files
Refs: https://github.com/servo/servo/issues/7078
2015-08-19 14:16:35 -04:00
bors-servo
95c6301cf4 Auto merge of #7249 - servo:gold, r=paulrouget
Only use a rustc wrapper script when ld.gold is available.

Fixes #7247.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7249)
<!-- Reviewable:end -->
2015-08-17 01:26:26 -06:00
Simon Sapin
1dab9294f4 Only use a rustc wrapper script when ld.gold is available.
Fixes #7247.
2015-08-17 09:20:07 +02:00
Josh Matthews
f6b3bebf84 Deal with /* /* when checking syntax. 2015-08-16 10:31:49 -04:00
Josh Matthews
a147cbe0c1 Tighten up checks for spaces around colons to deal with trait inheritance syntax. 2015-08-16 10:31:36 -04:00
Josh Matthews
7f935f010b Deal with multiline comments and reduce false positives for common syntax overlaps. Improve error messages. 2015-08-16 10:25:51 -04:00
Josh Matthews
4e593280ff Deal with multiline strings and tighten up syntax nit error messages. 2015-08-16 10:25:51 -04:00
wilmoz
e57a3888a5 Check for simple Rust style nits in tidy.py 2015-08-16 10:25:50 -04:00
bors-servo
a1aed50b5a Auto merge of #7229 - servo:gold, r=metajack
Use the gold linker when available.

This shaves 50 seconds off the build time on my machine.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7229)
<!-- Reviewable:end -->
2015-08-15 10:25:26 -06:00
Simon Sapin
fb7a53c6cf Use the gold linker when available.
This shaves 50 seconds off the build time on my machine.
2015-08-15 18:09:18 +02:00
Vinzent Steinberg
824384a1c2 Fix 'mach test' 2015-08-15 14:38:44 +02:00
Vinzent Steinberg
fe7b443c16 mach: Print commands if '--verbose' is set
Fixes #6363.
2015-08-15 13:58:36 +02:00
wilmoz
dafe077280 fixes test-wpt cannot be run from anywhere but the root 2015-08-11 11:30:06 -05:00
Corey Farwell
f873db5ab0 Allow Servo tests to be built/run with --release mode
Fixes #5075
2015-08-10 08:59:54 -04:00
Ms2ger
47d6d958f5 Revert "Auto merge of #7103 - frewsxcv:python-venv, r=metajack" for breaking web-platform-tests.
This reverts commit c315404db8, reversing
changes made to b00583bd4e.
2015-08-09 11:20:40 +02:00
Corey Farwell
b327e9b595 Remove no longer needed Python dependencies
See the parent commit for more information why these were removed

tl;dr: these dependencies should now get installed by pip in a
virtualenv
2015-08-08 18:48:10 -04:00
Corey Farwell
33f78314d9 Use one Python virtual environment for all mach commands
Prior to this commit:

* Our Python dependency story was a bit of a mess. We had complete
 Python packages (wheels and directories) living in-tree, despite
 not having any changes from upstream. This is particularly bad because
 `setup.py` never gets run on these packages which could (sometimes
 silently) unintended breakage.
* Python virtual environments (virtualenv) were only utilized for
 testing web-platform tests

After this commit:

* A single virtualenv (`python/_virtualenv`) is activated upon *every*
 call to mach
* A requirements file (`python/requirements.txt`) is added to describe
 the dependencies needed by Python modules in `python/`. The child
 commit immediately following this will remove all the dependencies
 no longer needed in-tree (for the sake of keeping this commit
 readable).

Relevant to https://github.com/servo/servo/issues/861

Fixes https://github.com/servo/servo/issues/6999
2015-08-08 18:48:02 -04:00
Corey Farwell
b91320cb05 Remove unused variable 2015-08-08 18:47:31 -04:00
Corey Farwell
da44f31cb1 Remove invalid file path in ignored_files for tidying 2015-08-07 10:24:19 -04:00
Corey Farwell
5eeb53413e Prevent flake8 from crashing tidy
If someone were to write:

    def hello() :
        print "hello world"

flake8 would warn:

    stdin:54:45: E203 whitespace before ':'

Normally there are only three colons in a flake8 error message, but this
one has four, which causes issue with this line:

    _, line_num, _, message = error.split(":")

...causing this error:

    ValueError: too many values to unpack

This commit updates the `str.split` call to utilize the `maxsplit`
parameter to prevent this error from occurring.
2015-08-05 10:23:16 -04:00
Bogdan Cuza
8bc66f97f8 Implement the FileList interface. Fixes #6708 2015-08-01 19:31:20 +02:00
Michael Howell
a93b4bba6d test-tidy fixes. 2015-07-31 21:49:01 -07:00
Michael Howell
f82f46680e UI cheeze. 2015-07-31 21:24:23 -07:00
Michael Howell
c602af2050 Integrate dromaeo with mach. 2015-07-31 21:24:22 -07:00
Matt Brubeck
63d39a464f Upgrade cocoa, openssl, and selectors 2015-07-30 14:19:08 -07:00
Bogdan Cuza
f039827dcd Fix #6664 and add color to tidy output 2015-07-28 13:28:33 +02:00
Corey Farwell
9e5f31ce00 Cleanup lint special cases, refactor flake8 linting
Currently, there are a few linting functions that only run on certain
filetypes (determined by the file extension). Prior to this commit, the
special cases were handled in a parent function with a conditional. This
commit changes the system so each linting function gets passed a
filename so the function can determine whether it should run or not
based on the file extension.

I also refactored flake8 linting slightly. From what I've read so far of
the code, flake8 itself will only print the results directly to stdout
(though the linter would report the quantity of errors detected).
Prior to this commit, we would let flake8 print directly to stdout and
just determine if there were >0 errors reported. This commit (sort of
hackily) temporarily captures stdout when we call flake8 so we can do
what we want with the output, allowing us to `yield` the line number
and message like we do with the other linting functions.

In my opinion, both of these changes isolate specific behaviors/checks
into their respective linting functions instead of having them handled
at a more global level.

In addition to the changes above:

* The whitespace linter now runs on WebIDL and TOML files
* The license header linter now runs on WebIDL files
2015-07-26 22:12:20 +07:00
Corey Farwell
d1acefa452 Prevent warning about redefining Python variable
'e' is also used later on in a list comprehension, and flake8 warns when
variables get redefined within a function
2015-07-26 22:07:23 +07:00
Corey Farwell
d71d2da81f Remove unused Python import 2015-07-26 22:07:22 +07:00
Matt Brubeck
4c3a6b839b Perform argument validation before bootstrapping.
If there's an error in the command-line arguments for `mach build`, we should
print it before starting a (potentially) long bootstrap process, not after.
2015-07-25 07:53:53 -07:00
Matt Brubeck
859f99d5e8 Update WPT test expectations for --release builds 2015-07-23 22:57:54 -07:00
bors-servo
11a3423c29 Auto merge of #6693 - notriddle:tidy-webidl, r=jdm
Tidy finds WebIDLs with no spec.

Closes #6689

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6693)
<!-- Reviewable:end -->
2015-07-22 13:44:12 -06:00
Michael Howell
ce4709d6a7 Remove the last few TRs. 2015-07-22 10:52:04 -07:00
Michael Howell
970f018dc8 Better references. 2015-07-22 10:49:26 -07:00
Sam Gibson
29a34dbdb5 Resolves code review comments
* Lots of rust-isms
* Mutable iterator for modifying entries (much better)
2015-07-22 11:49:06 +12:00
Sam Gibson
8086034e0b Commit HSTS preload list to source control
* No longer download the HSTS list as a bootstrap step
* Check the current revision of the HSTS list into source
2015-07-22 11:49:06 +12:00
Sam Gibson
865fb2eacb Resolve tidy issues 2015-07-22 11:49:05 +12:00
Sam Gibson
aa19a9a741 Preload an HSTS domain list from chromium
This resolves the first part of servo/servo#6105. The remaining part is
to update the list based on the STS headers from the server.
2015-07-22 11:48:03 +12:00