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

Side by Side Diff: scripts/slave/recipes/swarming/deterministic_build.py

Issue 1097423003: Disable the test isolation on the Android deterministic builder. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Created 5 years, 8 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
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 """Recipe to test the deterministic build. 5 """Recipe to test the deterministic build.
6 6
7 Waterfall page: https://build.chromium.org/p/chromium.swarm/waterfall 7 Waterfall page: https://build.chromium.org/p/chromium.swarm/waterfall
8 """ 8 """
9 9
10 from infra.libs.infra_types import freeze 10 from infra.libs.infra_types import freeze
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 REPO_URL='https://chromium.googlesource.com/chromium/src.git', 85 REPO_URL='https://chromium.googlesource.com/chromium/src.git',
86 Internal=False, 86 Internal=False,
87 **recipe_config.get('chromium_config_kwargs', 87 **recipe_config.get('chromium_config_kwargs',
88 {'BUILD_CONFIG': 'Release'})) 88 {'BUILD_CONFIG': 'Release'}))
89 api.chromium.apply_config(recipe_config['chromium_config']) 89 api.chromium.apply_config(recipe_config['chromium_config'])
90 90
91 91
92 def GenSteps(api): 92 def GenSteps(api):
93 buildername = api.properties['buildername'] 93 buildername = api.properties['buildername']
94 recipe_config = DETERMINISTIC_BUILDERS[buildername] 94 recipe_config = DETERMINISTIC_BUILDERS[buildername]
95 enable_isolate = True
95 96
96 targets = recipe_config.get('targets', ['chromium_swarm_tests']) 97 targets = recipe_config.get('targets', ['chromium_swarm_tests'])
97 if recipe_config.get('chromium_config_kwargs'): 98 if recipe_config.get('chromium_config_kwargs'):
98 target_platform = recipe_config['chromium_config_kwargs'].get( 99 target_platform = recipe_config['chromium_config_kwargs'].get(
99 'TARGET_PLATFORM') 100 'TARGET_PLATFORM')
100 else: 101 else:
101 target_platform = recipe_config.get('platform') 102 target_platform = recipe_config.get('platform')
102 103
103 if target_platform in ('linux', 'mac', 'win'): 104 if target_platform in ('linux', 'mac', 'win'):
104 ConfigureChromiumBuilder(api, recipe_config) 105 ConfigureChromiumBuilder(api, recipe_config)
105 elif target_platform is 'android': 106 elif target_platform is 'android':
107 # Disable the tests isolation on Android as it's not supported yet.
108 enable_isolate = False
106 ConfigureAndroidBuilder(api, recipe_config) 109 ConfigureAndroidBuilder(api, recipe_config)
107 api.chromium_android.init_and_sync() 110 api.chromium_android.init_and_sync()
108 111
109 # Enable test isolation. Modifies GYP_DEFINES used in 'runhooks' below. 112 if enable_isolate:
110 api.isolate.set_isolate_environment(api.chromium.c) 113 # Enable test isolation. Modifies GYP_DEFINES used in 'runhooks' below.
114 api.isolate.set_isolate_environment(api.chromium.c)
111 115
112 # Do a first build and move the build artifact to the temp directory. 116 # Do a first build and move the build artifact to the temp directory.
113 api.chromium.runhooks() 117 api.chromium.runhooks()
114 api.chromium.compile(targets, force_clobber=True, name='First build') 118 api.chromium.compile(targets, force_clobber=True, name='First build')
115 api.isolate.remove_build_metadata() 119 api.isolate.remove_build_metadata()
116 # This archives the results and regenerate the .isolated files. 120 if enable_isolate:
117 api.isolate.isolate_tests(api.chromium.output_dir) 121 # This archives the results and regenerate the .isolated files.
122 api.isolate.isolate_tests(api.chromium.output_dir)
118 MoveBuildDirectory(api, str(api.chromium.output_dir), 123 MoveBuildDirectory(api, str(api.chromium.output_dir),
119 str(api.chromium.output_dir).rstrip('\\/') + '.1') 124 str(api.chromium.output_dir).rstrip('\\/') + '.1')
120 125
121 # Do the second build and move the build artifact to the temp directory. 126 # Do the second build and move the build artifact to the temp directory.
122 api.chromium.runhooks() 127 api.chromium.runhooks()
123 api.chromium.compile(targets, force_clobber=True, name='Second build') 128 api.chromium.compile(targets, force_clobber=True, name='Second build')
124 api.isolate.remove_build_metadata() 129 api.isolate.remove_build_metadata()
125 # This should be quick if the build is indeed deterministic. 130 if enable_isolate:
126 api.isolate.isolate_tests(api.chromium.output_dir) 131 # This should be quick if the build is indeed deterministic.
132 api.isolate.isolate_tests(api.chromium.output_dir)
127 MoveBuildDirectory(api, str(api.chromium.output_dir), 133 MoveBuildDirectory(api, str(api.chromium.output_dir),
128 str(api.chromium.output_dir).rstrip('\\/') + '.2') 134 str(api.chromium.output_dir).rstrip('\\/') + '.2')
129 135
130 # Compare the artifacts from the 2 builds, raise an exception if they're 136 # Compare the artifacts from the 2 builds, raise an exception if they're
131 # not equals. 137 # not equals.
132 # TODO(sebmarchand): Do a smarter comparison. 138 # TODO(sebmarchand): Do a smarter comparison.
133 api.isolate.compare_build_artifacts( 139 api.isolate.compare_build_artifacts(
134 str(api.chromium.output_dir).rstrip('\\/') + '.1', 140 str(api.chromium.output_dir).rstrip('\\/') + '.1',
135 str(api.chromium.output_dir).rstrip('\\/') + '.2') 141 str(api.chromium.output_dir).rstrip('\\/') + '.2')
136 142
137 143
138 def _sanitize_nonalpha(text): 144 def _sanitize_nonalpha(text):
139 return ''.join(c if c.isalnum() else '_' for c in text) 145 return ''.join(c if c.isalnum() else '_' for c in text)
140 146
141 147
142 def GenTests(api): 148 def GenTests(api):
143 mastername = 'chromium.swarm' 149 mastername = 'chromium.swarm'
144 for buildername in DETERMINISTIC_BUILDERS: 150 for buildername in DETERMINISTIC_BUILDERS:
145 test_name = 'full_%s_%s' % (_sanitize_nonalpha(mastername), 151 test_name = 'full_%s_%s' % (_sanitize_nonalpha(mastername),
146 _sanitize_nonalpha(buildername)) 152 _sanitize_nonalpha(buildername))
147 yield ( 153 yield (
148 api.test(test_name) + 154 api.test(test_name) +
149 api.properties.scheduled() + 155 api.properties.scheduled() +
150 api.properties.generic(buildername=buildername, 156 api.properties.generic(buildername=buildername,
151 mastername=mastername) + 157 mastername=mastername) +
152 api.platform(DETERMINISTIC_BUILDERS[buildername]['platform'], 32) + 158 api.platform(DETERMINISTIC_BUILDERS[buildername]['platform'], 32) +
153 api.properties(configuration='Release') + 159 api.properties(configuration='Release') +
154 api.step_data('remove_build_metadata', retcode=1) 160 api.step_data('remove_build_metadata', retcode=1)
155 ) 161 )
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/recipes/swarming/deterministic_build.expected/full_chromium_swarm_Android_deterministic_build.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698