diff options
author | 2013-05-29 17:09:43 +0000 | |
---|---|---|
committer | 2013-05-29 17:09:43 +0000 | |
commit | ec3397bb6c06900dd192b5eb8ae9af0c866bfea0 (patch) | |
tree | 5e96684bdd65583ee902d29bb8b47070a042ad4d | |
parent | b74706f03379b32028e26cf7dc0367a5a26caf12 (diff) |
Refactor rebaseline.py into functions ; no behavioral changes.
R=senorblanco@chromium.org
Review URL: https://codereview.chromium.org/16160008
git-svn-id: http://skia.googlecode.com/svn/trunk@9318 2bbb7eff-a529-9590-31e7-b0007b416f81
-rwxr-xr-x | tools/rebaseline.py | 145 |
1 files changed, 87 insertions, 58 deletions
diff --git a/tools/rebaseline.py b/tools/rebaseline.py index 56e6380b64..7fcaf13a45 100755 --- a/tools/rebaseline.py +++ b/tools/rebaseline.py @@ -13,67 +13,96 @@ Must be run from the gm-expected directory. If run from a git or SVN checkout, the files will be added to the staging area for commit. ''' -import os, subprocess, sys, tempfile +import os +import subprocess +import sys +import tempfile + +# Mapping of gm-expectations subdir (under +# https://skia.googlecode.com/svn/gm-expected/ ) +# to builder name (see list at http://108.170.217.252:10117/builders ) +subdir_mapping = { + 'base-shuttle-win7-intel-float': + 'Test-Win7-ShuttleA-HD2000-x86-Release', + 'base-shuttle-win7-intel-angle': + 'Test-Win7-ShuttleA-HD2000-x86-Release-ANGLE', + 'base-shuttle-win7-intel-directwrite': + 'Test-Win7-ShuttleA-HD2000-x86-Release-DirectWrite', + 'base-shuttle_ubuntu12_ati5770': + 'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release', + 'base-macmini': + 'Test-Mac10.6-MacMini4.1-GeForce320M-x86-Release', + 'base-macmini-lion-float': + 'Test-Mac10.7-MacMini4.1-GeForce320M-x86-Release', + 'base-android-galaxy-nexus': + 'Test-Android-GalaxyNexus-SGX540-Arm7-Debug', + 'base-android-nexus-7': + 'Test-Android-Nexus7-Tegra3-Arm7-Release', + 'base-android-nexus-s': + 'Test-Android-NexusS-SGX540-Arm7-Release', + 'base-android-xoom': + 'Test-Android-Xoom-Tegra2-Arm7-Release', + 'base-android-nexus-10': + 'Test-Android-Nexus10-MaliT604-Arm7-Release', +} + +IS_SVN_CHECKOUT = (os.path.exists('.svn') or + os.path.exists(os.path.join('..', '.svn'))) +IS_GIT_CHECKOUT = (os.path.exists('.git') or + os.path.exists(os.path.join('..', '.git'))) + + +# Rebaseline a single file. +def RebaselineOneFile(expectations_subdir, builder_name, + infilename, outfilename): + url = ('http://skia-autogen.googlecode.com/svn/gm-actual/' + + expectations_subdir + '/' + builder_name + '/' + + expectations_subdir + '/' + infilename) + cmd = [ 'curl', '--fail', '--silent', url ] + temp = tempfile.NamedTemporaryFile() + ret = subprocess.call(cmd, stdout=temp) + if ret != 0: + print 'Couldn\'t fetch ' + url + return + cmd = [ 'cp', temp.name, outfilename ] + subprocess.call(cmd); + if IS_SVN_CHECKOUT: + cmd = [ 'svn', 'add', '--quiet', outfilename ] + subprocess.call(cmd) + cmd = [ 'svn', 'propset', '--quiet', 'svn:mime-type', 'image/png', + outfilename ]; + subprocess.call(cmd) + elif IS_GIT_CHECKOUT: + cmd = [ 'git', 'add', outfilename ] + subprocess.call(cmd) + + +# Rebaseline all testtypes for a single test. +def RebaselineOneTest(expectations_subdir, builder_name, testname): + if (expectations_subdir == 'base-shuttle-win7-intel-angle'): + testtypes = [ 'angle', 'anglemsaa16' ] + else: + testtypes = [ '565', '8888', 'gpu', 'pdf', 'mesa', 'msaa16', 'msaa4' ] + print expectations_subdir + ':' + for testtype in testtypes: + infilename = testname + '_' + testtype + '.png' + print infilename + outfilename = os.path.join(expectations_subdir, infilename); + RebaselineOneFile(expectations_subdir=expectations_subdir, + builder_name=builder_name, + infilename=infilename, + outfilename=outfilename) + -pairs = [ - ['base-shuttle-win7-intel-float', - 'Test-Win7-ShuttleA-HD2000-x86-Release'], - ['base-shuttle-win7-intel-angle', - 'Test-Win7-ShuttleA-HD2000-x86-Release-ANGLE'], - ['base-shuttle-win7-intel-directwrite', - 'Test-Win7-ShuttleA-HD2000-x86-Release-DirectWrite'], - ['base-shuttle_ubuntu12_ati5770', - 'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release'], - ['base-macmini', - 'Test-Mac10.6-MacMini4.1-GeForce320M-x86-Release'], - ['base-macmini-lion-float', - 'Test-Mac10.7-MacMini4.1-GeForce320M-x86-Release'], - ['base-android-galaxy-nexus', - 'Test-Android-GalaxyNexus-SGX540-Arm7-Debug'], - ['base-android-nexus-7', - 'Test-Android-Nexus7-Tegra3-Arm7-Release'], - ['base-android-nexus-s', - 'Test-Android-NexusS-SGX540-Arm7-Release'], - ['base-android-xoom', - 'Test-Android-Xoom-Tegra2-Arm7-Release'], - ['base-android-nexus-10', - 'Test-Android-Nexus10-MaliT604-Arm7-Release'], -] if len(sys.argv) < 2: - print 'Usage: ' + os.path.basename(sys.argv[0]) + ' <testname> ' - '[ <testname> ... ]' + print ('Usage: ' + os.path.basename(sys.argv[0]) + + ' <testname> [ <testname> ... ]') exit(1) -is_svn_checkout = os.path.exists('.svn') or os.path.exists(os.path.join('..', '.svn') ) -is_git_checkout = os.path.exists('.git') or os.path.exists(os.path.join('..', '.git')) - for testname in sys.argv[1:]: - for pair in pairs: - if (pair[0] == 'base-shuttle-win7-intel-angle'): - testtypes = [ 'angle', 'anglemsaa16' ] - else: - testtypes = [ '565', '8888', 'gpu', 'pdf', 'mesa', 'msaa16', 'msaa4' ] - print pair[0] + ':' - for testtype in testtypes: - infilename = testname + '_' + testtype + '.png' - print infilename - - url = 'http://skia-autogen.googlecode.com/svn/gm-actual/' + pair[0] + '/' + pair[1] + '/' + pair[0] + '/' + infilename - cmd = [ 'curl', '--fail', '--silent', url ] - temp = tempfile.NamedTemporaryFile() - ret = subprocess.call(cmd, stdout=temp) - if ret != 0: - print 'Couldn\'t fetch ' + url - continue - outfilename = os.path.join(pair[0], infilename); - cmd = [ 'cp', temp.name, outfilename ] - subprocess.call(cmd); - if is_svn_checkout: - cmd = [ 'svn', 'add', '--quiet', outfilename ] - subprocess.call(cmd) - cmd = [ 'svn', 'propset', '--quiet', 'svn:mime-type', 'image/png', outfilename ]; - subprocess.call(cmd) - elif is_git_checkout: - cmd = [ 'git', 'add', outfilename ] - subprocess.call(cmd) + for expectations_subdir in sorted(subdir_mapping.keys()): + builder_name = subdir_mapping[expectations_subdir] + RebaselineOneTest(expectations_subdir=expectations_subdir, + builder_name=builder_name, + testname=testname) |