To get the gold images out of the browser tests, this adds
testReporter.js and pathkit_aggregator.go. testReporter bundles
up the output as a base64 encoded PNG and sends it over the local
network to pathkit_aggregator. pathkit_aggregator will keep
a list of test results reported in this way and write the PNGs
to /OUT of the container (which is the swarming output directory).
Finally, after all the tests are run, the helper script "test_pathkit.sh"
makes a POST request that creates the JSON file that gold expects
(following the schema https://github.com/google/skia-buildbot/blob/master/golden/docs/INGESTION.md)
pathkit_aggregator takes many command line arguments which control
the keys that Gold needs in order to ingest and handle the data.
Of note, this creates a new set (i.e. source_type) of gold images
called "pathkit", which will distinguish it from "gm", "image", etc.
There will be at least 2 sub-sets of "pathkit" images, "canvas" and "svg",
(representing the 2 output types of PathKit). This CL doesn't
quite handle SVG yet, as it needs a way to convert SVG to PNG in the
browser and will be addressed in a follow up CL.
A "standard" gm is sized at 600x600. This was arbitrarily picked.
Note that the functions in testReporter.js return Promises based
on the fetch requests to post the data. This eliminates the race
condition between the /report_gold_data and /dump_json since
running the karma tests won't return until all reports are done.
Other changes of note:
- Adds go to karma-chrome-tests container.
- renames recipe_modules/build/wasm.py -> pathkit.py to be consistent with
the name of test_pathkit.py and make for easier grepping.
- Increases the JS test timeout to 10s (up from 5) to hopefully avoid
the flakes seen in the Debug Test.
Bug: skia:8216
Change-Id: Ic2cad54f3d19cc16601cf2e9a87798db1e6887a2
Reviewed-on: https://skia-review.googlesource.com/147042
Reviewed-by: Stephan Altmueller <stephana@google.com>
Because of https://skia-review.googlesource.com/c/skia/+/146165 and
https://skia-review.googlesource.com/c/skia/+/146100 we have a way
to turn PathOps tests into JSON, which has input paths (as Cmd arrays),
combination verb and expected output.
In this CL, we make tests from the JSON, compare them to the expected
output and, optionally, create SVGs to visualize the difference if any.
API changes (nothing breaking on release builds):
- Exposes SkRect as a JS Object. No need to call delete() on this.
- expose path.getBounds() and path.computeTightBounds()
- Remove SkRegion exposure (debug/test only), which was going to be
used for this purpose, but the approach in this CL works fine.
- Add loadCmdsTypedArray(cmd) helper function to JS [see helper.js].
This was previously known as `floatTypedArrayFrom2D` in the
old shell.html, and is now exposed to avoid clients having to
implement this boilerplate by themselves.
- Add set/getFillType - mostly for testing the difference between
a Winding and an EvenOdd path.
Bug: skia:8216
Change-Id: I2cd25ce2e1e7f285c79c596678678e62135963f0
Reviewed-on: https://skia-review.googlesource.com/146524
Reviewed-by: Cary Clark <caryclark@google.com>
This adds a few JS tests (see *.spec.test) and runs them
using Karma and a Docker image containing Karma, node, and
Chrome (currently at 68).
We only add a Debug Test here because the Release version
has some test helpers (e.g. Region) compiled out. If those
end up not mattering for tests, we can add in a Release version.
Bug: skia:8216
Change-Id: Ica6ab3a4f21688cfa175a90d42c2254d38e8fcf1
Reviewed-on: https://skia-review.googlesource.com/145723
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:8185
Change-Id: Id40f288515169a378926d6042cc76a976cdf7513
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/145892
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:8081
Change-Id: Ibcb82389668bd9ea7395e498696417d5701761c0
Reviewed-on: https://skia-review.googlesource.com/140782
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
They crash, presumably because they use multiple large images.
Change-Id: I277958cd6661820085b4e1a04e0668e3a3e9fddc
Reviewed-on: https://skia-review.googlesource.com/145880
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Adds arc, arcTo, rect and Path2D names for quadTo, cubicTo, close.
Adds conic verb support (approximated with 2 quads).
Breaking changes:
Some functions have been moved to be member functions:
PathKit.Simplify(path) -> path.simplify()
PathKit.ToCanvas(path, ctx) -> path.toCanvas(ctx)
PathKit.ToSVGString(path) -> path.toSVGString()
PathKit.ToPath2D(path) -> path.toPath2D()
PathKit.ToCmds(path) -> path.toCmds()
PathKit.ResolveBuilder(builder) -> builder.resolve()
PathKit.GetBoundaryPathFromRegion(region) -> region.getBoundaryPath()
Pathkit.ApplyPathOp(pathOne, pathTwo, op) still exists, but there's
now also pathOne.op(pathTwo, op) for cases when that's easier.
As per custom with version 0.x.y projects, I'm bumping the
minor version (in npm) for these breaking changes instead of the
major version (which will happen when we are version >= 1.0.0).
This also has some small improvements to the output code size.
The biggest jump was from enabling the closure compiler on the
helper JS, which trimmed it down by about 40%. Using the closure
compiler requires the JRE on the bots, which prompted the emsdk-base
image change.
Bug: skia:8216
Change-Id: I40902d23380093c34d1679df0255bcb0eaa77b01
Reviewed-on: https://skia-review.googlesource.com/145420
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Bug: skia:
Change-Id: I3437830069de5ff8ace21115024396120d21b2a0
Reviewed-on: https://skia-review.googlesource.com/145482
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
I'm keeping the Release jobs for a few commits for blame.
There are a few reasons for this change:
- This will free up more Mac VMs for Build jobs.
- The CPU jobs currently run on VMs, which don't provide reliable perf
numbers.
- The two bare-metal MacMini7.1 bots (currently running the GPU TSAN
jobs) are over-capacity.
- Lets us test AVX2 rather than AVX.
I used the MacBookPro11.5 for all of these, but we could spread them
out to other Mac bots if it's too much load for these bots.
No-Try: true
Change-Id: I8c97e194c4f3e0018e7e646b93c3d96db8d0ca82
Reviewed-on: https://skia-review.googlesource.com/145431
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
iOS builds still causing an error on installation:
ERROR: Install failed. Got error "APIInternalError".
stephana will help with debugging this when he's back in the office.
Bug: chromium:862292
Change-Id: I8fdff24938f000da550e1c5420c7ac312f09dce7
Reviewed-on: https://skia-review.googlesource.com/144440
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This contains the Go code dependencies of our infra repo and will be
used to insulate us from upstream changes which break us due to API
changes, etc.
Bug: skia:
Change-Id: I6ce36a4e41b6d7686fe2598ba980640854cd4f11
Reviewed-on: https://skia-review.googlesource.com/145158
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Change-Id: I88ee8200b82d12ba8cee637e01b360ce2d2bb2b3
Reviewed-on: https://skia-review.googlesource.com/145360
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I0eb3dcc4d38eb2aeab22d1df1515e499cf21dc62
Reviewed-on: https://skia-review.googlesource.com/144608
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This adds a job to build it and adds it to the npm
under /bin/debug.
The debug build is useful for clients because it
has all the debug symbols, which makes it possible to
see which WASM calls are taking the longest when using
DevTools' Performance testing.
Bug: skia:8216
Change-Id: I3068cb395f29c1de927508cf15c419f5af284eb7
Reviewed-on: https://skia-review.googlesource.com/145337
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Bug: skia:
Change-Id: Ibdfa20023019dc6372293600b0b1b4607916694f
Reviewed-on: https://skia-review.googlesource.com/145330
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This creates a new named cache docker for this and future
docker-based jobs to use, to avoid permission snafus with
the normal "work" named cache.
Remove old WASM build, which was using the janky CIPD
emsdk asset and wasn't really exercising what we needed.
Bug: skia:8216
Change-Id: I993bba38b4978ca5eebb97e5b5b21729d55a072d
Reviewed-on: https://skia-review.googlesource.com/145140
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This reverts commit 63fac808ee.
Reason for revert: Fiddle problem seems to be fixed
Original change's description:
> Disable bookmaker CLs automatic CQ+2 for now
>
> Disable till problem described in
> https://bugs.chromium.org/p/skia/issues/detail?id=8151#c8 is fixed
>
> Bug: skia:8151
> Change-Id: Ie726829f3b13b587e14192dbf0104d04934a18dc
> Reviewed-on: https://skia-review.googlesource.com/142503
> Reviewed-by: Ravi Mistry <rmistry@google.com>
> Reviewed-by: Cary Clark <caryclark@google.com>
> Commit-Queue: Ravi Mistry <rmistry@google.com>
TBR=rmistry@google.com,caryclark@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: skia:8151
Change-Id: If09f3ab783d3b616bc96ba8994e6220039f6fc00
Reviewed-on: https://skia-review.googlesource.com/145324
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).
Please review the expectation changes, and LGTM+CQ.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
https://crrev.com/5300616351f523c605de80f5ece8c29321a78847 bot_update: expose patch_refs as an option to ensure_checkout. (jbudorick@chromium.org)
R=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I3719ebfe726d6662c0e3b8a9f4e21ca62000a292
Reviewed-on: https://skia-review.googlesource.com/145144
Reviewed-by: John Budorick <jbudorick@chromium.org>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This CL prepares for installing Xcode in a Swarming cache dir from a
CIPD package. https://skia-review.googlesource.com/c/skia/+/144608
After that, I hope to isolate the xSAN libs in the Build task so that
we don't need Xcode on the xSAN test bots. Baby steps.
Change-Id: I61dbe9474eceff42cbfd824c429db382b68a8c35
Reviewed-on: https://skia-review.googlesource.com/145143
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
This CL prepares for installing Xcode in a Swarming cache dir from a
CIPD package. https://skia-review.googlesource.com/c/skia/+/144608
Change-Id: I123a409f97397cc0e87de0dcd05d7ea08d3c0524
Reviewed-on: https://skia-review.googlesource.com/144903
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This is necessary for lottie-ci so we can upload to different
buckets and fetch different hash files.
Bug: skia:
Change-Id: I98b4d551df34473e2b5fc04284b0de04fbc097f3
Reviewed-on: https://skia-review.googlesource.com/144840
Commit-Queue: Stephan Altmueller <stephana@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:
Change-Id: I0f29f3f30c2519712d9f981d9a242c340d4577aa
Reviewed-on: https://skia-review.googlesource.com/144303
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Mac Build tasks are stuck on 10.13.3 due to unresolved issues with
building iOS and MoltenVK.
Bug: chromium:862292
Change-Id: I4195971a5a027fc502aaea01570e43ec19976055
Reviewed-on: https://skia-review.googlesource.com/142330
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:8185
Change-Id: Idef6ed3d0e886cb89b91e65a3253991136b94186
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/144126
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
In https://skia-review.googlesource.com/c/skia/+/143107, the Metal tasks
were added with a whitelist of one unit test, so there are no Gold
results to upload. Gold treats the empty results files as invalid, which
generates Trooper alerts.
No-Try: true
Change-Id: Ifcdfccefb173c5cb970d60da5b7c3a89d6bc15db
Reviewed-on: https://skia-review.googlesource.com/143500
Commit-Queue: Stephan Altmueller <stephana@google.com>
Reviewed-by: Stephan Altmueller <stephana@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
It is unused, is becoming a maintainence burden and source of bugs,
and takes up a lot of time on the *SAN bots.
Change-Id: If383eb6e4838ca23140f9e16d518b1bfc655fa12
Reviewed-on: https://skia-review.googlesource.com/143307
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
This is mainly to debug TSAN issues.
I'm not exactly sure why we run this config on ASAN and MSAN bots.
This CL will disable them along with TSAN, and depending on how
much time that saves on the bots, I might only turn TSAN back on
in the end.
Change-Id: Id4d92f27a917b4e14b96c25e97e8be70ca2004f5
Reviewed-on: https://skia-review.googlesource.com/143302
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Auto-Submit: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
This reverts commit e3e68cf14f.
Reason for revert: The test was hanging due to https://skia-review.googlesource.com/c/skia/+/142102, which has been reverted.
Original change's description:
> Blacklist hanging test.
>
> Blacklist gr_mipmap_build_511x512 for nanobench on the Acer Chromebook
> R13 Convertible to avoid timeouts for Release build.
>
> Bug: skia:8187
> No-Try: true
> Change-Id: Ic63fb705a6a6cc6576978c96a8dd5206dc59ba0d
> Reviewed-on: https://skia-review.googlesource.com/143162
> Commit-Queue: Brian Osman <brianosman@google.com>
> Auto-Submit: Ben Wagner <benjaminwagner@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
TBR=benjaminwagner@google.com,brianosman@google.com
Change-Id: Id5144f1ada6d2059e473a2891816775ea7fe2663
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8187
Reviewed-on: https://skia-review.googlesource.com/143320
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
After https://skia-review.googlesource.com/c/buildbot/+/141564,
scheduling will work better if most jobs use the default priority.
Since task priority is now ignored, remove it everywhere.
Bug: skia:8145
Change-Id: Ie49cfbbbda80c6d6419a8f691af6a3c775ae5cda
Reviewed-on: https://skia-review.googlesource.com/143163
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Blacklist gr_mipmap_build_511x512 for nanobench on the Acer Chromebook
R13 Convertible to avoid timeouts for Release build.
Bug: skia:8187
No-Try: true
Change-Id: Ic63fb705a6a6cc6576978c96a8dd5206dc59ba0d
Reviewed-on: https://skia-review.googlesource.com/143162
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Currently the test bot is set up with a whitelist that only runs one test.
Bug: skia:
Change-Id: Ief6a978a527cf581929cafe0f4cd002c35b24235
Reviewed-on: https://skia-review.googlesource.com/143107
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:7376
No-Try: true
Change-Id: I0f79e6a1e07103769f3205f069b84e932c96bd64
Reviewed-on: https://skia-review.googlesource.com/142983
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>