Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: scripts/slave/recipe_modules/skia/api.py

Issue 1951843002: Skia: Add --colorImages to DM (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | scripts/slave/recipes/skia/skia.expected/Test-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Debug.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 5
6 import json 6 import json
7 import os 7 import os
8 import re 8 import re
9 import sys 9 import sys
10 10
(...skipping 16 matching lines...) Expand all
27 from . import ios_flavor 27 from . import ios_flavor
28 from . import valgrind_flavor 28 from . import valgrind_flavor
29 from . import xsan_flavor 29 from . import xsan_flavor
30 30
31 31
32 BOTO_CHROMIUM_SKIA_GM = 'chromium-skia-gm.boto' 32 BOTO_CHROMIUM_SKIA_GM = 'chromium-skia-gm.boto'
33 33
34 GS_SUBDIR_TMPL_SK_IMAGE = 'skimage/v%s' 34 GS_SUBDIR_TMPL_SK_IMAGE = 'skimage/v%s'
35 GS_SUBDIR_TMPL_SKP = 'playback_%s/skps' 35 GS_SUBDIR_TMPL_SKP = 'playback_%s/skps'
36 36
37 MIN_COLORSPACE_SKIMAGE_VERSION = 5
38
37 TEST_EXPECTED_SKP_VERSION = '42' 39 TEST_EXPECTED_SKP_VERSION = '42'
38 TEST_EXPECTED_SK_IMAGE_VERSION = '42' 40 TEST_EXPECTED_SK_IMAGE_VERSION = '42'
39 41
40 VERSION_FILE_SK_IMAGE = 'SK_IMAGE_VERSION' 42 VERSION_FILE_SK_IMAGE = 'SK_IMAGE_VERSION'
41 VERSION_FILE_SKP = 'SKP_VERSION' 43 VERSION_FILE_SKP = 'SKP_VERSION'
42 44
43 VERSION_NONE = -1 45 VERSION_NONE = -1
44 46
45 BUILD_PRODUCTS_ISOLATE_WHITELIST = [ 47 BUILD_PRODUCTS_ISOLATE_WHITELIST = [
46 'dm', 48 'dm',
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 def check_failure(self): 273 def check_failure(self):
272 """Raise an exception if any step failed.""" 274 """Raise an exception if any step failed."""
273 if self.failed: 275 if self.failed:
274 raise self.m.step.StepFailure('Failed build steps: %s' % 276 raise self.m.step.StepFailure('Failed build steps: %s' %
275 ', '.join([f.name for f in self.failed])) 277 ', '.join([f.name for f in self.failed]))
276 278
277 def _run_once(self, fn, *args, **kwargs): 279 def _run_once(self, fn, *args, **kwargs):
278 if not hasattr(self, '_already_ran'): 280 if not hasattr(self, '_already_ran'):
279 self._already_ran = {} 281 self._already_ran = {}
280 if not fn.__name__ in self._already_ran: 282 if not fn.__name__ in self._already_ran:
281 self._already_ran[fn.__name__] = True 283 self._already_ran[fn.__name__] = fn(*args, **kwargs)
282 fn(*args, **kwargs) 284 return self._already_ran[fn.__name__]
283 285
284 def update_repo(self, parent_dir, repo): 286 def update_repo(self, parent_dir, repo):
285 """Update an existing repo. This is safe to call without gen_steps.""" 287 """Update an existing repo. This is safe to call without gen_steps."""
286 repo_path = parent_dir.join(repo.name) 288 repo_path = parent_dir.join(repo.name)
287 if self.m.path.exists(repo_path): 289 if self.m.path.exists(repo_path):
288 if self.m.platform.is_win: 290 if self.m.platform.is_win:
289 git = 'git.bat' 291 git = 'git.bat'
290 else: 292 else:
291 git = 'git' 293 git = 'git'
292 self.m.step('git remote set-url', 294 self.m.step('git remote set-url',
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 local_images_dir, 534 local_images_dir,
533 test_expected_version=TEST_EXPECTED_SK_IMAGE_VERSION, 535 test_expected_version=TEST_EXPECTED_SK_IMAGE_VERSION,
534 test_actual_version=self.m.properties.get( 536 test_actual_version=self.m.properties.get(
535 'test_downloaded_sk_image_version', 537 'test_downloaded_sk_image_version',
536 TEST_EXPECTED_SK_IMAGE_VERSION), 538 TEST_EXPECTED_SK_IMAGE_VERSION),
537 running_in_swarming=running_in_swarming) 539 running_in_swarming=running_in_swarming)
538 540
539 def _download_and_copy_images(self): 541 def _download_and_copy_images(self):
540 """Download and copy test images if needed.""" 542 """Download and copy test images if needed."""
541 version = self.download_images(self.tmp_dir, self.images_dir, self.running_i n_swarming) 543 version = self.download_images(self.tmp_dir, self.images_dir, self.running_i n_swarming)
542
543 """host_version, version_file, gs_path_tmpl, tmp_dir,
544 host_path, device_path, test_expected_version,
545 test_actual_version, running_in_swarming"""
546
547 self.copy_dir( 544 self.copy_dir(
548 version, 545 version,
549 VERSION_FILE_SK_IMAGE, 546 VERSION_FILE_SK_IMAGE,
550 self.tmp_dir, 547 self.tmp_dir,
551 self.images_dir, 548 self.images_dir,
552 self.device_dirs.images_dir, 549 self.device_dirs.images_dir,
553 test_expected_version=TEST_EXPECTED_SK_IMAGE_VERSION, 550 test_expected_version=TEST_EXPECTED_SK_IMAGE_VERSION,
554 test_actual_version=self.m.properties.get( 551 test_actual_version=self.m.properties.get(
555 'test_downloaded_sk_image_version', 552 'test_downloaded_sk_image_version',
556 TEST_EXPECTED_SK_IMAGE_VERSION)) 553 TEST_EXPECTED_SK_IMAGE_VERSION))
554 return version
557 555
558 def download_skps(self, tmp_dir, local_skp_dir, running_in_swarming): 556 def download_skps(self, tmp_dir, local_skp_dir, running_in_swarming):
559 """Download SKPs if needed.""" 557 """Download SKPs if needed."""
560 return self.download_dir( 558 return self.download_dir(
561 VERSION_FILE_SKP, 559 VERSION_FILE_SKP,
562 GS_SUBDIR_TMPL_SKP, 560 GS_SUBDIR_TMPL_SKP,
563 tmp_dir, 561 tmp_dir,
564 local_skp_dir, 562 local_skp_dir,
565 test_expected_version=TEST_EXPECTED_SKP_VERSION, 563 test_expected_version=TEST_EXPECTED_SKP_VERSION,
566 test_actual_version=self.m.properties.get( 564 test_actual_version=self.m.properties.get(
567 'test_downloaded_skp_version', TEST_EXPECTED_SKP_VERSION), 565 'test_downloaded_skp_version', TEST_EXPECTED_SKP_VERSION),
568 running_in_swarming=running_in_swarming) 566 running_in_swarming=running_in_swarming)
569 567
570 def _download_and_copy_skps(self): 568 def _download_and_copy_skps(self):
571 """Download and copy the SKPs if needed.""" 569 """Download and copy the SKPs if needed."""
572 version = self.download_skps(self.tmp_dir, self.local_skp_dir, self.running_ in_swarming) 570 version = self.download_skps(self.tmp_dir, self.local_skp_dir, self.running_ in_swarming)
573 self.copy_dir( 571 self.copy_dir(
574 version, 572 version,
575 VERSION_FILE_SKP, 573 VERSION_FILE_SKP,
576 self.tmp_dir, 574 self.tmp_dir,
577 self.local_skp_dir, 575 self.local_skp_dir,
578 self.device_dirs.skp_dir, 576 self.device_dirs.skp_dir,
579 test_expected_version=TEST_EXPECTED_SKP_VERSION, 577 test_expected_version=TEST_EXPECTED_SKP_VERSION,
580 test_actual_version=self.m.properties.get( 578 test_actual_version=self.m.properties.get(
581 'test_downloaded_skp_version', TEST_EXPECTED_SKP_VERSION)) 579 'test_downloaded_skp_version', TEST_EXPECTED_SKP_VERSION))
580 return version
582 581
583 def install(self): 582 def install(self):
584 """Copy the required executables and files to the device.""" 583 """Copy the required executables and files to the device."""
585 self.device_dirs = self.flavor.get_device_dirs() 584 self.device_dirs = self.flavor.get_device_dirs()
586 585
587 # Run any device-specific installation. 586 # Run any device-specific installation.
588 self.flavor.install() 587 self.flavor.install()
589 588
590 # TODO(borenet): Only copy files which have changed. 589 # TODO(borenet): Only copy files which have changed.
591 # Resources 590 # Resources
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 filename, 625 filename,
627 args=[self.m.json.output(), builder_name], 626 args=[self.m.json.output(), builder_name],
628 step_test_data=lambda: self.m.json.test_api.output(test_data), 627 step_test_data=lambda: self.m.json.test_api.output(test_data),
629 cwd=cwd, 628 cwd=cwd,
630 infra_step=True).json.output 629 infra_step=True).json.output
631 630
632 def test_steps(self): 631 def test_steps(self):
633 """Run the DM test.""" 632 """Run the DM test."""
634 self._run_once(self.install) 633 self._run_once(self.install)
635 self._run_once(self._download_and_copy_skps) 634 self._run_once(self._download_and_copy_skps)
636 self._run_once(self._download_and_copy_images) 635 skimage_version = self._run_once(self._download_and_copy_images)
637 636
638 use_hash_file = False 637 use_hash_file = False
639 if self.upload_dm_results: 638 if self.upload_dm_results:
640 # This must run before we write anything into self.device_dirs.dm_dir 639 # This must run before we write anything into self.device_dirs.dm_dir
641 # or we may end up deleting our output on machines where they're the same. 640 # or we may end up deleting our output on machines where they're the same.
642 self.flavor.create_clean_host_dir(self.dm_dir) 641 self.flavor.create_clean_host_dir(self.dm_dir)
643 if str(self.dm_dir) != str(self.device_dirs.dm_dir): 642 if str(self.dm_dir) != str(self.device_dirs.dm_dir):
644 self.flavor.create_clean_device_dir(self.device_dirs.dm_dir) 643 self.flavor.create_clean_device_dir(self.device_dirs.dm_dir)
645 644
646 # Obtain the list of already-generated hashes. 645 # Obtain the list of already-generated hashes.
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 'dm', 715 'dm',
717 '--undefok', # This helps branches that may not know new flags. 716 '--undefok', # This helps branches that may not know new flags.
718 '--resourcePath', self.device_dirs.resource_dir, 717 '--resourcePath', self.device_dirs.resource_dir,
719 '--skps', self.device_dirs.skp_dir, 718 '--skps', self.device_dirs.skp_dir,
720 '--images', self.flavor.device_path_join( 719 '--images', self.flavor.device_path_join(
721 self.device_dirs.images_dir, 'dm'), 720 self.device_dirs.images_dir, 'dm'),
722 '--nameByHash', 721 '--nameByHash',
723 '--properties' 722 '--properties'
724 ] + properties 723 ] + properties
725 724
725 if int(skimage_version) >= MIN_COLORSPACE_SKIMAGE_VERSION:
726 args .extend(['--colorImages',
727 self.flavor.device_path_join(self.device_dirs.images_dir,
728 'colorspace')])
729
726 args.append('--key') 730 args.append('--key')
727 args.extend(self._KeyParams()) 731 args.extend(self._KeyParams())
728 if use_hash_file: 732 if use_hash_file:
729 args.extend(['--uninterestingHashesFile', hashes_file]) 733 args.extend(['--uninterestingHashesFile', hashes_file])
730 if self.upload_dm_results: 734 if self.upload_dm_results:
731 args.extend(['--writePath', self.device_dirs.dm_dir]) 735 args.extend(['--writePath', self.device_dirs.dm_dir])
732 736
733 skip_flag = None 737 skip_flag = None
734 if self.builder_cfg.get('cpu_or_gpu') == 'CPU': 738 if self.builder_cfg.get('cpu_or_gpu') == 'CPU':
735 skip_flag = '--nogpu' 739 skip_flag = '--nogpu'
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 # Don't bother to include role, which is always Test. 899 # Don't bother to include role, which is always Test.
896 # TryBots are uploaded elsewhere so they can use the same key. 900 # TryBots are uploaded elsewhere so they can use the same key.
897 blacklist = ['role', 'is_trybot'] 901 blacklist = ['role', 'is_trybot']
898 902
899 flat = [] 903 flat = []
900 for k in sorted(self.builder_cfg.keys()): 904 for k in sorted(self.builder_cfg.keys()):
901 if k not in blacklist: 905 if k not in blacklist:
902 flat.append(k) 906 flat.append(k)
903 flat.append(self.builder_cfg[k]) 907 flat.append(self.builder_cfg[k])
904 return flat 908 return flat
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/recipes/skia/skia.expected/Test-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Debug.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698