aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/rebaseline.py
diff options
context:
space:
mode:
authorGravatar epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-29 17:09:43 +0000
committerGravatar epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-29 17:09:43 +0000
commitec3397bb6c06900dd192b5eb8ae9af0c866bfea0 (patch)
tree5e96684bdd65583ee902d29bb8b47070a042ad4d /tools/rebaseline.py
parentb74706f03379b32028e26cf7dc0367a5a26caf12 (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
Diffstat (limited to 'tools/rebaseline.py')
-rwxr-xr-xtools/rebaseline.py145
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)