skia2/infra/bots/assets
Leon Scroggins III e56774602c Fix truncated webp images
Bug: b/65290323

If a webp file is truncated such that no rows can be decoded,
WebPIDecGetRGB does not initialize its "last_y" parameter. We use
rowsDecoded (passed as last_y) to determine which remaining rows to
fill.

Check the return value of WebPIDecGetRGB. If it fails (returns null),
or rowsDecoded is <= 0 (matching Chromium's check), return
kInvalidInput, since there is nothing to draw.

Note that this is a change in behavior for Android. Previously we
would decode an empty webp to just a transparent/black rectangle,
whereas now we simply fail. I think this is a change for the better.

Add a test which truncates a file to have 0 rows available and attempts
to decode it. msan verifies that we no longer depend on the
uninitialized value.

Stop attempting to test decoding subsets from an incomplete webp (in
CodecTest.cpp). Unless we have decoded the portion covered by the
subset, this will fail.

Remove test images inc0.webp (from both dm/ and colorspace/) and
inc1.webp. These just decode to transparent rectangles. Replace them
with inc2.webp and inc3.webp, which decode part of the image and then
have to fill with transparent.

Change-Id: I64d40be91c574b45963f9a43d8dd8f4929dd2939
Reviewed-on: https://skia-review.googlesource.com/50303
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: James Zern <jzern@google.com>
2017-09-27 20:51:02 +00:00
..
android_ndk_darwin Upgrade android build (and infrastructure) to use ndk r15. 2017-06-27 16:32:15 +00:00
android_ndk_linux Upgrade android build (and infrastructure) to use ndk r15. 2017-06-27 16:32:15 +00:00
android_ndk_windows Upgrade android build (and infrastructure) to use ndk r15. 2017-06-27 16:32:15 +00:00
android_sdk Add Android SDK asset 2016-06-30 05:20:03 -07:00
armhf_sysroot Add recipe to build for Asus Flip Chromebook 2017-04-05 11:39:04 +00:00
cast_toolchain Enable chromecast gpu perf 2017-05-24 20:30:05 +00:00
chromebook_arm_gles Add jobs for Samsung Chromebook Plus 2017-04-12 16:51:21 +00:00
clang_linux update clang_linux package to Clang 5 2017-09-10 13:20:49 +00:00
clang_win Add clang_win asset 2017-07-31 19:14:53 +00:00
emscripten_sdk [WASM] Add POC compile bot for WebAssembly 2017-09-21 18:24:43 +00:00
go Update go to 1.8.2 2017-05-24 13:19:47 +00:00
linux_vulkan_intel_driver_debug Update mesa drivers to 17.04 2017-04-21 16:39:06 +00:00
linux_vulkan_intel_driver_release Update mesa drivers to 17.04 2017-04-21 16:39:06 +00:00
linux_vulkan_sdk Add Vulkan SDK for Linux asset 2017-01-18 14:54:10 +00:00
protoc [infra] Add protoc asset 2017-07-19 18:23:36 +00:00
scripts Add CIPD asset for Valgrind 2017-05-31 19:41:13 +00:00
skimage Fix truncated webp images 2017-09-27 20:51:02 +00:00
skp Update SKP version 2017-09-25 15:43:06 +00:00
svg Create new set of SVGs 2017-08-16 15:42:55 +00:00
valgrind Upgrade Valgrind to 3.13.0. 2017-08-07 13:58:00 +00:00
win_toolchain Start including 'winrt' in Windows toolchain 2017-01-10 18:28:58 +00:00
win_vulkan_sdk Add Vulkan SDK for Linux asset 2017-01-18 14:54:10 +00:00
__init__.py Add asset management scripts 2016-06-15 12:07:42 -07:00
asset_utils_test.py Disable flaky GSStoreTest 2016-12-12 17:01:43 +00:00
asset_utils.py [WASM] Add POC compile bot for WebAssembly 2017-09-21 18:24:43 +00:00
assets.py Fix assets.py args 2016-11-09 15:23:34 +00:00
README.md Add asset management scripts 2016-06-15 12:07:42 -07:00

Assets

This directory contains tooling for managing assets used by the bots. The primary entry point is assets.py, which allows a user to add, remove, upload, and download assets.

Assets are stored in Google Storage, named for their version number.

Individual Assets

Each asset has its own subdirectory with the following contents:

  • VERSION: The current version number of the asset.
  • download.py: Convenience script for downloading the current version of the asset.
  • upload.py: Convenience script for uploading a new version of the asset.
  • [optional] create.py: Script which creates the asset, implemented by the user.
  • [optional] create_and_upload.py: Convenience script which combines create.py with upload.py.

Examples

Add a new asset and upload an initial version.

$ infra/bots/assets/assets.py add myasset
Creating asset in infra/bots/assets/myasset
Creating infra/bots/assets/myasset/download.py
Creating infra/bots/assets/myasset/upload.py
Creating infra/bots/assets/myasset/common.py
Add script to automate creation of this asset? (y/n) n
$ infra/bots/assets/myasset/upload.py -t ${MY_ASSET_LOCATION}
$ git commit

Add an asset whose creation can be automated.

$ infra/bots/assets/assets.py add myasset
Add script to automate creation of this asset? (y/n) y
$ vi infra/bots/assets/myasset/create.py
(implement the create_asset function)
$ infra/bots/assets/myasset/create_and_upload.py
$ git commit