isolate webkit_layout_tests fails |
|||||
Issue description
"""
erikchen@erikchen-macpro3 ~/projects/chromium/src (test54)$ tools/mb/mb.py isolate //out/gn webkit_layout_tests
ninja -C out/gn webkit_layout_tests -j 480 -l 24
ninja: Entering directory `out/gn'
ninja: no work to do.
python tools/swarming_client/isolate.py check -i out/gn/webkit_layout_tests.isolate -s out/gn/webkit_layout_tests.isolated
Failed to find an input file: Input directory /Users/erikchen/projects/chromium/src/out/gn/gen/layout_test_data/mojo/public/interfaces/bindings/tests/data/validation must have a trailing slash
-> returned 1
"""
It appears that mojo/public/interfaces/bindings/tests/BUILD.gn lists a directory as a file:
"""
17 copy("validation_test_data") {
18 testonly = true
19 sources = [
20 "data/validation",
21 ]
22 outputs = [
23 "$root_gen_dir/layout_test_data/{{source_root_relative_dir}}/{{source_file_part}}",
24 ]
25 }
"""
,
Aug 14
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/61d147f69bcac7055ec2ca5117d48b742b113268 commit 61d147f69bcac7055ec2ca5117d48b742b113268 Author: erikchen <erikchen@chromium.org> Date: Tue Aug 14 17:32:49 2018 Fix GN generation of mojo data files. The sources for validation_test_data was being listed as a directory rather than a list of files. This is incorrect -- directories cannot be listed as sources for the copy command in GN. This in turn caused isolate.py to think that the file .../data/validation was a dependency, which then caused isolate.py to throw an error since .../data/validation is a directory, not a file. This CL explicitly lists all file dependencies. Bug: 873208 Change-Id: I02ee6b28016bf36a612cd44079080274fcbf3744 Reviewed-on: https://chromium-review.googlesource.com/1171111 Reviewed-by: Ken Rockot <rockot@chromium.org> Commit-Queue: Erik Chen <erikchen@chromium.org> Cr-Commit-Position: refs/heads/master@{#582961} [modify] https://crrev.com/61d147f69bcac7055ec2ca5117d48b742b113268/mojo/public/interfaces/bindings/tests/BUILD.gn
,
Aug 14
,
Aug 22
This makes me think that we're probably not even using isolate.py for archiving anywhere. Maybe we should get rid of that code? Developers can obtain the go binaries if they need to manually isolate.
,
Aug 22
as discussed in person, I believe GN's copy command should actually work to copy directories, although it is almost always a bad idea to use it that way. From the description, I'm actually guessing that this is a bug in mb.py, not isolate.py or GN.
,
Aug 22
"""The sources for validation_test_data was being listed as a directory rather than a list of files. This is incorrect -- directories cannot be listed as sources for the copy command in GN. This in turn caused isolate.py to think that the file .../data/validation was a dependency, which then caused isolate.py to throw an error since .../data/validation is a directory, not a file.""" ^ This is wrong. copies can contain directories. It's usually not a good idea, but as long as you don't have subdirs it happens to mostly work (also see https://bugs.chromium.org/p/chromium/issues/detail?id=855747#c1).
,
Aug 23
GN thinks that the source is a file: """ 19 sources = [ 20 "data/validation", 21 ] """ Adding a trailing slash causes GN to fail, with an error stating that only files are valid targets. dirk has started a discussion to determine whether this is WAI or a bug.
,
Aug 23
(Said discussion is happening in bug 855747)
,
Aug 23
,
Aug 31
We don't use isolate.py to archive src.git's output, true. I'd be happy to switch to a pure Go implementation, which would also allow switching the format to be proper JSON and probably get rid of the variables while at it. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by erikc...@chromium.org
, Aug 10Labels: OS-Linux OS-Mac
Summary: isolate webkit_layout_tests fails (was: isolate webkit_layout_tests fails on macOS)