Index: tools/mb/mb_unittest.py |
diff --git a/tools/mb/mb_unittest.py b/tools/mb/mb_unittest.py |
index 6870b24f862b5f9ad47d60b76a40486252f38da8..98a1b05919b1c1400c4956011402f8efb636f6b1 100755 |
--- a/tools/mb/mb_unittest.py |
+++ b/tools/mb/mb_unittest.py |
@@ -216,15 +216,6 @@ |
mbw = FakeMBW(win32=win32) |
mbw.files.setdefault(mbw.default_config, TEST_CONFIG) |
mbw.files.setdefault( |
- mbw.ToAbsPath('//testing/buildbot/gn_isolate_map.pyl'), |
- '''{ |
- "foo_unittests": { |
- "label": "//foo:foo_unittests", |
- "type": "console_test_launcher", |
- "args": [], |
- }, |
- }''') |
- mbw.files.setdefault( |
mbw.ToAbsPath('//build/args/bots/fake_master/fake_gn_args_bot.gn'), |
'is_debug = false\n') |
if files: |
@@ -277,27 +268,76 @@ |
self.assertEqual(mbw.files['/fake_src/out/Debug/mb_type'], 'gyp') |
def test_gn_analyze(self): |
- files = {'/tmp/in.json': '''{\ |
+ files = {'/tmp/in.json': """{\ |
"files": ["foo/foo_unittest.cc"], |
- "test_targets": ["foo_unittests"], |
- "additional_compile_targets": ["all"] |
- }''', |
- '/tmp/out.json.gn': '''{\ |
- "status": "Found dependency", |
- "compile_targets": ["//foo:foo_unittests"], |
- "test_targets": ["//foo:foo_unittests"] |
- }'''} |
+ "test_targets": ["foo_unittests", "bar_unittests"], |
+ "additional_compile_targets": [] |
+ }"""} |
mbw = self.fake_mbw(files) |
- mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') |
+ mbw.Call = lambda cmd, env=None, buffer_output=True: ( |
+ 0, 'out/Default/foo_unittests\n', '') |
self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default', |
'/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) |
out = json.loads(mbw.files['/tmp/out.json']) |
self.assertEqual(out, { |
'status': 'Found dependency', |
- 'compile_targets': ['foo:foo_unittests'], |
+ 'compile_targets': ['foo_unittests'], |
'test_targets': ['foo_unittests'] |
+ }) |
+ |
+ def test_gn_analyze_fails(self): |
+ files = {'/tmp/in.json': """{\ |
+ "files": ["foo/foo_unittest.cc"], |
+ "test_targets": ["foo_unittests", "bar_unittests"], |
+ "additional_compile_targets": [] |
+ }"""} |
+ |
+ mbw = self.fake_mbw(files) |
+ mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '') |
+ |
+ self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default', |
+ '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=1) |
+ |
+ def test_gn_analyze_all(self): |
+ files = {'/tmp/in.json': """{\ |
+ "files": ["foo/foo_unittest.cc"], |
+ "test_targets": ["bar_unittests"], |
+ "additional_compile_targets": ["all"] |
+ }"""} |
+ mbw = self.fake_mbw(files) |
+ mbw.Call = lambda cmd, env=None, buffer_output=True: ( |
+ 0, 'out/Default/foo_unittests\n', '') |
+ self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default', |
+ '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) |
+ out = json.loads(mbw.files['/tmp/out.json']) |
+ self.assertEqual(out, { |
+ 'status': 'Found dependency (all)', |
+ 'compile_targets': ['all', 'bar_unittests'], |
+ 'test_targets': ['bar_unittests'], |
+ }) |
+ |
+ def test_gn_analyze_missing_file(self): |
+ files = {'/tmp/in.json': """{\ |
+ "files": ["foo/foo_unittest.cc"], |
+ "test_targets": ["bar_unittests"], |
+ "additional_compile_targets": [] |
+ }"""} |
+ mbw = self.fake_mbw(files) |
+ mbw.cmds = [ |
+ (0, '', ''), |
+ (1, 'The input matches no targets, configs, or files\n', ''), |
+ (1, 'The input matches no targets, configs, or files\n', ''), |
+ ] |
+ |
+ self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default', |
+ '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) |
+ out = json.loads(mbw.files['/tmp/out.json']) |
+ self.assertEqual(out, { |
+ 'status': 'No dependency', |
+ 'compile_targets': [], |
+ 'test_targets': [], |
}) |
def test_gn_gen(self): |