Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(329)

Issue 6817062: Building on the SkPicture replay framework (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
12 years, 6 months ago by rmistry
Modified:
12 years, 6 months ago
Reviewers:
epoger, EricB
CC:
skia-review_googlegroups.com, skiabot_google.com
Base URL:
http://skia.googlecode.com/svn/buildbot/
Visibility:
Public.

Description

* Improved the webpages_playback.py script. Made it simplier, more modular and moved it up a level. * Created the following new BuildSteps: ** RenderWebpagePictures: It downloads skp files from Google Storage, runs render_pictures and stores images back to Google Storage. ** CompareWebpageGMs. ** BenchWebpagePictures. ** UploadWebpagePictureBenchResults. ** GenerateWebpagePictureBenchGraphs. ** UploadWebpagePictureBenchGraphs. * Added utility modules- file_utils and gs_utils. * Added run_unittests that runs all unit tests below the slaves directory. Added unit tests for file_utils and gs_utils. * If gm-actual does not exist for a builder then images from gm-expected are copied there. * If there are not enough revisions to generate graphs with, then the exception is caught and the empty graphs are not uploaded. Committed: https://code.google.com/p/skia/source/detail?r=6366

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Total comments: 18

Patch Set 8 : #

Patch Set 9 : Addressing comments #

Patch Set 10 : #

Patch Set 11 : #

Patch Set 12 : Cleaning up #

Patch Set 13 : #

Patch Set 14 : #

Patch Set 15 : #

Patch Set 16 : #

Total comments: 8

Patch Set 17 : #

Patch Set 18 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1118 lines, -201 lines) Patch
M slave/skia_slave_scripts/bench_pictures.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +11 lines, -4 lines 0 comments Download
A slave/skia_slave_scripts/bench_webpage_pictures.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +42 lines, -0 lines 0 comments Download
M slave/skia_slave_scripts/build_step.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +16 lines, -2 lines 0 comments Download
A slave/skia_slave_scripts/compare_webpage_gms.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +66 lines, -0 lines 0 comments Download
M slave/skia_slave_scripts/generate_bench_graphs.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +32 lines, -9 lines 0 comments Download
A slave/skia_slave_scripts/generate_webpage_picture_bench_graphs.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +49 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/page_sets/skia_set.json View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +98 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/playback_dirs.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +127 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/render_webpage_pictures.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +131 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/run_unittests View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +42 lines, -0 lines 0 comments Download
M slave/skia_slave_scripts/skpicture_playback/webpages_playback.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -180 lines 0 comments Download
M slave/skia_slave_scripts/upload_bench_graphs.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +22 lines, -4 lines 0 comments Download
M slave/skia_slave_scripts/upload_bench_results.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +16 lines, -2 lines 0 comments Download
A slave/skia_slave_scripts/upload_webpage_picture_bench_graphs.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +50 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/upload_webpage_picture_bench_results.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +50 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/utils/file_utils.py View 1 2 3 4 5 6 7 8 10 11 1 chunk +17 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/utils/file_utils_test.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +61 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/utils/gs_utils.py View 1 2 3 4 5 6 7 1 chunk +39 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/utils/gs_utils_test.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +56 lines, -0 lines 0 comments Download
A slave/skia_slave_scripts/webpages_playback.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +193 lines, -0 lines 0 comments Download

Messages

Total messages: 11
rmistry
12 years, 6 months ago (2012-11-06 19:47:26 UTC) #1
EricB
This seems to be duplicating a lot of the slave-side steps. I'm sort of confused ...
12 years, 6 months ago (2012-11-06 20:25:33 UTC) #2
rmistry
Addressed only the high level design comments in this round. https://codereview.appspot.com/6817062/diff/9008/slave/skia_slave_scripts/bench_webpage_pictures.py File slave/skia_slave_scripts/bench_webpage_pictures.py (right): https://codereview.appspot.com/6817062/diff/9008/slave/skia_slave_scripts/bench_webpage_pictures.py#newcode6 ...
12 years, 6 months ago (2012-11-06 20:40:20 UTC) #3
EricB
I think this looks good for the most part. I guess we'll switch to the ...
12 years, 6 months ago (2012-11-06 21:54:22 UTC) #4
rmistry
https://codereview.appspot.com/6817062/diff/9008/slave/skia_slave_scripts/build_step.py File slave/skia_slave_scripts/build_step.py (right): https://codereview.appspot.com/6817062/diff/9008/slave/skia_slave_scripts/build_step.py#newcode33 slave/skia_slave_scripts/build_step.py:33: RELATIVE_PLAYBACK_SKP_DIR = os.path.join(ROOT_PLAYBACK_DIR_NAME, 'skpictures') On 2012/11/06 20:25:33, EricB wrote: ...
12 years, 6 months ago (2012-11-08 13:04:03 UTC) #5
epoger
I've looked through the CL and I don't have any comments to add. When it ...
12 years, 6 months ago (2012-11-08 15:26:26 UTC) #6
rmistry
Added unit tests in file_utils_test.py and gs_utils_test.py. Also added a script in skia_slave_scripts/run_unittests that recursively ...
12 years, 6 months ago (2012-11-08 19:35:03 UTC) #7
epoger
https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/run_unittests File slave/skia_slave_scripts/run_unittests (right): https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/run_unittests#newcode6 slave/skia_slave_scripts/run_unittests:6: """Runs all unit tests under this base directory.""" Here ...
12 years, 6 months ago (2012-11-08 19:43:29 UTC) #8
EricB
Looks mostly good, but I have a few concerns. https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/playback_dirs.py File slave/skia_slave_scripts/playback_dirs.py (right): https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/playback_dirs.py#newcode33 slave/skia_slave_scripts/playback_dirs.py:33: ...
12 years, 6 months ago (2012-11-08 20:11:54 UTC) #9
rmistry
Also added page_sets/skia_set.json (list of websites to use for replaying) because I figure we will ...
12 years, 6 months ago (2012-11-09 14:41:17 UTC) #10
EricB
12 years, 6 months ago (2012-11-09 14:46:16 UTC) #11
On 2012/11/09 14:41:17, rmistry wrote:
> Also added page_sets/skia_set.json (list of websites to use for replaying)
> because I figure we will almost definitely need a different list than
>
http://src.chromium.org/viewvc/chrome/trunk/src/tools/perf/page_sets/top_25.j...
> 
>
https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/pla...
> File slave/skia_slave_scripts/playback_dirs.py (right):
> 
>
https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/pla...
> slave/skia_slave_scripts/playback_dirs.py:33:
#################################
> On 2012/11/08 20:11:54, EricB wrote:
> > The reason we used this model for Android was that we had a different view
of
> > the filesystem when we were inside the app from when we were using ADB. 
That
> > code is gone now, but we created two instances of the same object with
> different
> > basedirs.  Instead of having {Local|Storage}PlaybackGmActualDir(), you just
> have
> > PlaybackGmActualDir(), but the two instances return different values.  So,
> > instead of:
> > 
> > d1 = dirs.LocalPlaybackGmActualDir()
> > d2 = dirs.StoragePlaybackGmActualDir()
> > 
> > You have:
> > 
> > d1 = local_dirs.PlaybackGmActualDir()
> > d2 = storage_dirs.PlaybackGmActualDir()
> > 
> > Which I think is cleaner and a bit better OO practice.
> 
> Good idea. Done. Kept all classes in one module instead of creating too many
> files.
> 
>
https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/upl...
> File slave/skia_slave_scripts/upload_bench_graphs.py (right):
> 
>
https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/upl...
> slave/skia_slave_scripts/upload_bench_graphs.py:41: print '\n\n%s does not
> exist! Skipping graph upload!' % graph_filepath
> On 2012/11/08 20:11:54, EricB wrote:
> > Raise a BuildStepWarning (or failure)? Or, return False and raise a
> > BuildStepWarning at the end of the loop in _Run if anything failed?
> 
> Raised BuildStepWarning here.
> 
>
https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/uti...
> File slave/skia_slave_scripts/utils/file_utils_test.py (right):
> 
>
https://codereview.appspot.com/6817062/diff/5011/slave/skia_slave_scripts/uti...
> slave/skia_slave_scripts/utils/file_utils_test.py:32: os.path.exists =
> _MockPathExists
> On 2012/11/08 20:11:54, EricB wrote:
> > On 2012/11/08 19:43:29, epoger wrote:
> > > <keanu> Whoa. </keanu>
> > 
> > +1.  I guess each test runs in a separate process?  I want to be sure that
> > things we clobber like this can't affect other tests.
> 
> Hmm, in google3 this would work but since I am not sure here, I am setting
back
> the originals, which is a good process to follow anyway.

LGTM at patch set 18.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b