Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 98 | 98 |
| 99 def write(self, contents): | 99 def write(self, contents): |
| 100 self.buf += contents | 100 self.buf += contents |
| 101 | 101 |
| 102 def close(self): | 102 def close(self): |
| 103 self.files[self.name] = self.buf | 103 self.files[self.name] = self.buf |
| 104 | 104 |
| 105 | 105 |
| 106 TEST_CONFIG = """\ | 106 TEST_CONFIG = """\ |
| 107 { | 107 { |
| 108 'configs': { | |
| 109 'gyp_rel_bot': ['gyp', 'rel', 'goma'], | |
| 110 'gn_debug_goma': ['gn', 'debug', 'goma'], | |
| 111 'gyp_debug': ['gyp', 'debug', 'fake_feature1'], | |
| 112 'gn_rel_bot': ['gn', 'rel', 'goma'], | |
| 113 'gyp_crosscompile': ['gyp', 'crosscompile'], | |
| 114 }, | |
| 115 'masters': { | 108 'masters': { |
| 116 'chromium': {}, | 109 'chromium': {}, |
| 117 'fake_master': { | 110 'fake_master': { |
| 118 'fake_builder': 'gyp_rel_bot', | 111 'fake_builder': 'gyp_rel_bot', |
| 119 'fake_gn_builder': 'gn_rel_bot', | 112 'fake_gn_builder': 'gn_rel_bot', |
| 120 'fake_gyp_crosscompile_builder': 'gyp_crosscompile', | 113 'fake_gyp_crosscompile_builder': 'gyp_crosscompile', |
| 121 'fake_gn_debug_builder': 'gn_debug_goma', | 114 'fake_gn_debug_builder': 'gn_debug_goma', |
| 122 'fake_gyp_builder': 'gyp_debug', | 115 'fake_gyp_builder': 'gyp_debug', |
| 123 'fake_gn_args_bot': '//build/args/bots/fake_master/fake_gn_args_bot.gn', | 116 'fake_gn_args_bot': '//build/args/bots/fake_master/fake_gn_args_bot.gn', |
| 117 'fake_multi_phase': ['gn_phase_1', 'gn_phase_2'], | |
| 124 }, | 118 }, |
| 125 }, | 119 }, |
| 120 'configs': { | |
| 121 'gyp_rel_bot': ['gyp', 'rel', 'goma'], | |
| 122 'gn_debug_goma': ['gn', 'debug', 'goma'], | |
| 123 'gyp_debug': ['gyp', 'debug', 'fake_feature1'], | |
| 124 'gn_rel_bot': ['gn', 'rel', 'goma'], | |
| 125 'gyp_crosscompile': ['gyp', 'crosscompile'], | |
| 126 'gn_phase_1': ['gn', 'phase_1'], | |
| 127 'gn_phase_2': ['gn', 'phase_2'], | |
| 128 }, | |
| 126 'mixins': { | 129 'mixins': { |
| 127 'crosscompile': { | 130 'crosscompile': { |
| 128 'gyp_crosscompile': True, | 131 'gyp_crosscompile': True, |
| 129 }, | 132 }, |
| 130 'fake_feature1': { | 133 'fake_feature1': { |
| 131 'gn_args': 'enable_doom_melon=true', | 134 'gn_args': 'enable_doom_melon=true', |
| 132 'gyp_defines': 'doom_melon=1', | 135 'gyp_defines': 'doom_melon=1', |
| 133 }, | 136 }, |
| 134 'gyp': {'type': 'gyp'}, | 137 'gyp': {'type': 'gyp'}, |
| 135 'gn': {'type': 'gn'}, | 138 'gn': {'type': 'gn'}, |
| 136 'goma': { | 139 'goma': { |
| 137 'gn_args': 'use_goma=true', | 140 'gn_args': 'use_goma=true', |
| 138 'gyp_defines': 'goma=1', | 141 'gyp_defines': 'goma=1', |
| 139 }, | 142 }, |
| 143 'phase_1': { | |
| 144 'gn_args': 'phase=1', | |
| 145 'gyp_args': 'phase=1', | |
| 146 }, | |
| 147 'phase_2': { | |
| 148 'gn_args': 'phase=2', | |
| 149 'gyp_args': 'phase=2', | |
| 150 }, | |
| 140 'rel': { | 151 'rel': { |
| 141 'gn_args': 'is_debug=false', | 152 'gn_args': 'is_debug=false', |
| 142 }, | 153 }, |
| 143 'debug': { | 154 'debug': { |
| 144 'gn_args': 'is_debug=true', | 155 'gn_args': 'is_debug=true', |
| 145 }, | 156 }, |
| 146 }, | 157 }, |
| 147 } | 158 } |
| 148 """ | 159 """ |
| 149 | 160 |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 482 def test_help(self): | 493 def test_help(self): |
| 483 orig_stdout = sys.stdout | 494 orig_stdout = sys.stdout |
| 484 try: | 495 try: |
| 485 sys.stdout = StringIO.StringIO() | 496 sys.stdout = StringIO.StringIO() |
| 486 self.assertRaises(SystemExit, self.check, ['-h']) | 497 self.assertRaises(SystemExit, self.check, ['-h']) |
| 487 self.assertRaises(SystemExit, self.check, ['help']) | 498 self.assertRaises(SystemExit, self.check, ['help']) |
| 488 self.assertRaises(SystemExit, self.check, ['help', 'gen']) | 499 self.assertRaises(SystemExit, self.check, ['help', 'gen']) |
| 489 finally: | 500 finally: |
| 490 sys.stdout = orig_stdout | 501 sys.stdout = orig_stdout |
| 491 | 502 |
| 503 def test_multiple_phases(self): | |
| 504 # Check that not passing a --phase to a multi-phase builder fails. | |
| 505 mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase'], | |
| 506 ret=1) | |
| 507 self.assertIn('Must specify a build --phase', mbw.out) | |
| 508 | |
| 509 # Check that passing a --phase to a single-phase builder fails. | |
| 510 mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_gn_builder', | |
| 511 '--phase', '1'], | |
| 512 ret=1) | |
| 513 self.assertIn('Must not specify a build --phase', mbw.out) | |
| 514 | |
| 515 # Check different ranges; 0 and 3 are out of bounds, 1 and 2 should work. | |
| 516 mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase', | |
| 517 '--phase', '0'], ret=1) | |
| 518 self.assertIn('Phase 0 out of bounds', mbw.out) | |
| 519 | |
| 520 mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase', | |
| 521 '--phase', '1'], ret=0) | |
| 522 self.assertIn('phase = 1', mbw.out) | |
| 523 | |
| 524 mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase', | |
| 525 '--phase', '2'], ret=0) | |
| 526 self.assertIn('phase = 2', mbw.out) | |
| 527 | |
| 528 mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase', | |
| 529 '--phase', '3'], ret=1) | |
| 530 self.assertIn('Phase 3 out of bounds', mbw.out) | |
| 531 | |
| 492 def test_validate(self): | 532 def test_validate(self): |
| 493 mbw = self.fake_mbw() | 533 mbw = self.fake_mbw() |
| 494 self.check(['validate'], mbw=mbw, ret=0) | 534 self.check(['validate'], mbw=mbw, ret=0) |
| 535 | |
|
kjellander_chromium
2016/12/17 20:55:13
What happened here at line 535-557? It seems like
Dirk Pranke
2016/12/18 02:39:46
Whoops. Looks like you're right :).
| |
| 536 def test_bad_validate(self): | |
| 537 mbw = self.fake_mbw() | |
| 538 mbw.files[mbw.default_config] = TEST_BAD_CONFIG | |
| 539 self.check(['validate'], mbw=mbw, ret=1) | |
| 540 | |
| 541 def test_gyp_env_hacks(self): | |
| 542 mbw = self.fake_mbw() | |
| 543 mbw.files[mbw.default_config] = GYP_HACKS_CONFIG | |
| 544 self.check(['lookup', '-c', 'fake_config'], mbw=mbw, | |
| 545 ret=0, | |
| 546 out=("GYP_DEFINES='foo=bar baz=1'\n" | |
| 547 "GYP_LINK_CONCURRENCY=1\n" | |
| 548 "LLVM_FORCE_HEAD_REVISION=1\n" | |
| 549 "python build/gyp_chromium -G output_dir=_path_\n")) | |
| 550 | |
| 551 | |
| 552 if __name__ == '__main__': | |
| 553 unittest.main() | |
| 554 | |
| 555 def test_validate(self): | |
| 556 mbw = self.fake_mbw() | |
| 557 self.check(['validate'], mbw=mbw, ret=0) | |
| 495 | 558 |
| 496 def test_bad_validate(self): | 559 def test_bad_validate(self): |
| 497 mbw = self.fake_mbw() | 560 mbw = self.fake_mbw() |
| 498 mbw.files[mbw.default_config] = TEST_BAD_CONFIG | 561 mbw.files[mbw.default_config] = TEST_BAD_CONFIG |
| 499 self.check(['validate'], mbw=mbw, ret=1) | 562 self.check(['validate'], mbw=mbw, ret=1) |
| 500 | 563 |
| 501 def test_gyp_env_hacks(self): | 564 def test_gyp_env_hacks(self): |
| 502 mbw = self.fake_mbw() | 565 mbw = self.fake_mbw() |
| 503 mbw.files[mbw.default_config] = GYP_HACKS_CONFIG | 566 mbw.files[mbw.default_config] = GYP_HACKS_CONFIG |
| 504 self.check(['lookup', '-c', 'fake_config'], mbw=mbw, | 567 self.check(['lookup', '-c', 'fake_config'], mbw=mbw, |
| 505 ret=0, | 568 ret=0, |
| 506 out=("GYP_DEFINES='foo=bar baz=1'\n" | 569 out=("GYP_DEFINES='foo=bar baz=1'\n" |
| 507 "GYP_LINK_CONCURRENCY=1\n" | 570 "GYP_LINK_CONCURRENCY=1\n" |
| 508 "LLVM_FORCE_HEAD_REVISION=1\n" | 571 "LLVM_FORCE_HEAD_REVISION=1\n" |
| 509 "python build/gyp_chromium -G output_dir=_path_\n")) | 572 "python build/gyp_chromium -G output_dir=_path_\n")) |
| 510 | 573 |
| 511 | 574 |
| 512 if __name__ == '__main__': | 575 if __name__ == '__main__': |
| 513 unittest.main() | 576 unittest.main() |
| OLD | NEW |