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

Side by Side Diff: tools/mb/mb_unittest.py

Issue 1881823002: Support references to args files in MB. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mb_write_args_file
Patch Set: fix indent Created 4 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
« no previous file with comments | « tools/mb/mb_config.pyl ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright 2015 The Chromium Authors. All rights reserved. 2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Tests for mb.py.""" 6 """Tests for mb.py."""
7 7
8 import json 8 import json
9 import StringIO 9 import StringIO
10 import os 10 import os
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 'gyp_crosscompile': ['gyp', 'crosscompile'], 111 'gyp_crosscompile': ['gyp', 'crosscompile'],
112 }, 112 },
113 'masters': { 113 'masters': {
114 'chromium': {}, 114 'chromium': {},
115 'fake_master': { 115 'fake_master': {
116 'fake_builder': 'gyp_rel_bot', 116 'fake_builder': 'gyp_rel_bot',
117 'fake_gn_builder': 'gn_rel_bot', 117 'fake_gn_builder': 'gn_rel_bot',
118 'fake_gyp_crosscompile_builder': 'gyp_crosscompile', 118 'fake_gyp_crosscompile_builder': 'gyp_crosscompile',
119 'fake_gn_debug_builder': 'gn_debug_goma', 119 'fake_gn_debug_builder': 'gn_debug_goma',
120 'fake_gyp_builder': 'gyp_debug', 120 'fake_gyp_builder': 'gyp_debug',
121 'fake_gn_args_bot': '//build/args/bots/fake_master/fake_gn_args_bot.gn',
121 }, 122 },
122 }, 123 },
123 'mixins': { 124 'mixins': {
124 'crosscompile': { 125 'crosscompile': {
125 'gyp_crosscompile': True, 126 'gyp_crosscompile': True,
126 }, 127 },
127 'fake_feature1': { 128 'fake_feature1': {
128 'gn_args': 'enable_doom_melon=true', 129 'gn_args': 'enable_doom_melon=true',
129 'gyp_defines': 'doom_melon=1', 130 'gyp_defines': 'doom_melon=1',
130 }, 131 },
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 'gn_args': 'is_debug=false', 170 'gn_args': 'is_debug=false',
170 }, 171 },
171 }, 172 },
172 } 173 }
173 """ 174 """
174 175
175 class UnitTest(unittest.TestCase): 176 class UnitTest(unittest.TestCase):
176 def fake_mbw(self, files=None, win32=False): 177 def fake_mbw(self, files=None, win32=False):
177 mbw = FakeMBW(win32=win32) 178 mbw = FakeMBW(win32=win32)
178 mbw.files.setdefault(mbw.default_config, TEST_CONFIG) 179 mbw.files.setdefault(mbw.default_config, TEST_CONFIG)
180 mbw.files.setdefault(
181 mbw.ToAbsPath('//build/args/bots/fake_master/fake_gn_args_bot.gn'),
182 'is_debug = false\n')
179 if files: 183 if files:
180 for path, contents in files.items(): 184 for path, contents in files.items():
181 mbw.files[path] = contents 185 mbw.files[path] = contents
182 return mbw 186 return mbw
183 187
184 def check(self, args, mbw=None, files=None, out=None, err=None, ret=None): 188 def check(self, args, mbw=None, files=None, out=None, err=None, ret=None):
185 if not mbw: 189 if not mbw:
186 mbw = self.fake_mbw(files) 190 mbw = self.fake_mbw(files)
187 191
188 actual_ret = mbw.Main(args) 192 actual_ret = mbw.Main(args)
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 mbw = self.fake_mbw(win32=True) 316 mbw = self.fake_mbw(win32=True)
313 self.check(['gen', '-c', 'gn_debug_goma', '-g', 'c:\\goma', '//out/Debug'], 317 self.check(['gen', '-c', 'gn_debug_goma', '-g', 'c:\\goma', '//out/Debug'],
314 mbw=mbw, ret=0, 318 mbw=mbw, ret=0,
315 out=('c:\\fake_src\\buildtools\\win\\gn.exe gen //out/Debug ' 319 out=('c:\\fake_src\\buildtools\\win\\gn.exe gen //out/Debug '
316 '--check\n')) 320 '--check\n'))
317 self.assertMultiLineEqual(mbw.files['c:\\fake_src\\out\\Debug\\args.gn'], 321 self.assertMultiLineEqual(mbw.files['c:\\fake_src\\out\\Debug\\args.gn'],
318 ('goma_dir = "c:\\\\goma"\n' 322 ('goma_dir = "c:\\\\goma"\n'
319 'is_debug = true\n' 323 'is_debug = true\n'
320 'use_goma = true\n')) 324 'use_goma = true\n'))
321 325
326 mbw = self.fake_mbw()
327 self.check(['gen', '-m', 'fake_master', '-b', 'fake_gn_args_bot',
328 '//out/Debug'],
329 mbw=mbw, ret=0)
330 self.assertEqual(
331 mbw.files['/fake_src/out/Debug/args.gn'],
332 'import("//build/args/bots/fake_master/fake_gn_args_bot.gn")\n')
333
322 334
323 def test_gn_gen_fails(self): 335 def test_gn_gen_fails(self):
324 mbw = self.fake_mbw() 336 mbw = self.fake_mbw()
325 mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '') 337 mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '')
326 self.check(['gen', '-c', 'gn_debug_goma', '//out/Default'], mbw=mbw, ret=1) 338 self.check(['gen', '-c', 'gn_debug_goma', '//out/Default'], mbw=mbw, ret=1)
327 339
328 def test_gn_gen_swarming(self): 340 def test_gn_gen_swarming(self):
329 files = { 341 files = {
330 '/tmp/swarming_targets': 'base_unittests\n', 342 '/tmp/swarming_targets': 'base_unittests\n',
331 '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( 343 '/fake_src/testing/buildbot/gn_isolate_map.pyl': (
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 try: 453 try:
442 sys.stdout = StringIO.StringIO() 454 sys.stdout = StringIO.StringIO()
443 self.assertRaises(SystemExit, self.check, ['-h']) 455 self.assertRaises(SystemExit, self.check, ['-h'])
444 self.assertRaises(SystemExit, self.check, ['help']) 456 self.assertRaises(SystemExit, self.check, ['help'])
445 self.assertRaises(SystemExit, self.check, ['help', 'gen']) 457 self.assertRaises(SystemExit, self.check, ['help', 'gen'])
446 finally: 458 finally:
447 sys.stdout = orig_stdout 459 sys.stdout = orig_stdout
448 460
449 def test_validate(self): 461 def test_validate(self):
450 mbw = self.fake_mbw() 462 mbw = self.fake_mbw()
451 mbw.files[mbw.default_config] = TEST_CONFIG
452 self.check(['validate'], mbw=mbw, ret=0) 463 self.check(['validate'], mbw=mbw, ret=0)
453 464
454 def test_bad_validate(self): 465 def test_bad_validate(self):
455 mbw = self.fake_mbw() 466 mbw = self.fake_mbw()
456 mbw.files[mbw.default_config] = TEST_BAD_CONFIG 467 mbw.files[mbw.default_config] = TEST_BAD_CONFIG
457 self.check(['validate'], mbw=mbw, ret=1) 468 self.check(['validate'], mbw=mbw, ret=1)
458 469
459 470
460 if __name__ == '__main__': 471 if __name__ == '__main__':
461 unittest.main() 472 unittest.main()
OLDNEW
« no previous file with comments | « tools/mb/mb_config.pyl ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698