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

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

Issue 1131623006: Use a response file for gn refs when running 'analyze' on gn bots. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix formatting nits Created 5 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 | « tools/mb/mb.py ('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 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 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 """Tests for mb.py.""" 5 """Tests for mb.py."""
6 6
7 import json 7 import json
8 import sys 8 import sys
9 import unittest 9 import unittest
10 10
(...skipping 29 matching lines...) Expand all
40 40
41 def Print(self, *args, **kwargs): 41 def Print(self, *args, **kwargs):
42 sep = kwargs.get('sep', ' ') 42 sep = kwargs.get('sep', ' ')
43 end = kwargs.get('end', '\n') 43 end = kwargs.get('end', '\n')
44 f = kwargs.get('file', sys.stdout) 44 f = kwargs.get('file', sys.stdout)
45 if f == sys.stderr: 45 if f == sys.stderr:
46 self.err += sep.join(args) + end 46 self.err += sep.join(args) + end
47 else: 47 else:
48 self.out += sep.join(args) + end 48 self.out += sep.join(args) + end
49 49
50 def TempFile(self):
51 return FakeFile(self.files)
52
53 def RemoveFile(self, path):
54 del self.files[path]
55
56
57 class FakeFile(object):
58 def __init__(self, files):
59 self.name = '/tmp/file'
60 self.buf = ''
61 self.files = files
62
63 def write(self, contents):
64 self.buf += contents
65
66 def close(self):
67 self.files[self.name] = self.buf
68
69
50 class IntegrationTest(unittest.TestCase): 70 class IntegrationTest(unittest.TestCase):
51 def test_validate(self): 71 def test_validate(self):
52 # Note that this validates that the actual mb_config.pyl is valid. 72 # Note that this validates that the actual mb_config.pyl is valid.
53 ret = mb.main(['validate', '--quiet']) 73 ret = mb.main(['validate', '--quiet'])
54 self.assertEqual(ret, 0) 74 self.assertEqual(ret, 0)
55 75
56 76
57 TEST_CONFIG = """\ 77 TEST_CONFIG = """\
58 { 78 {
59 'common_dev_configs': ['gn_debug'], 79 'common_dev_configs': ['gn_debug'],
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 self.assertEqual(mbw.out, out) 139 self.assertEqual(mbw.out, out)
120 if err is not None: 140 if err is not None:
121 self.assertEqual(mbw.err, err) 141 self.assertEqual(mbw.err, err)
122 return mbw 142 return mbw
123 143
124 def test_gn_analyze(self): 144 def test_gn_analyze(self):
125 files = {'/tmp/in.json': """{\ 145 files = {'/tmp/in.json': """{\
126 "files": ["foo/foo_unittest.cc"], 146 "files": ["foo/foo_unittest.cc"],
127 "targets": ["foo_unittests", "bar_unittests"] 147 "targets": ["foo_unittests", "bar_unittests"]
128 }"""} 148 }"""}
149
129 mbw = self.fake_mbw(files) 150 mbw = self.fake_mbw(files)
130 mbw.Call = lambda cmd: (0, 'out/Default/foo_unittests\n', '') 151 mbw.Call = lambda cmd: (0, 'out/Default/foo_unittests\n', '')
131 152
132 self.check(['analyze', '-c', 'gn_debug', '//out/Default', 153 self.check(['analyze', '-c', 'gn_debug', '//out/Default',
133 '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) 154 '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
134 out = json.loads(mbw.files['/tmp/out.json']) 155 out = json.loads(mbw.files['/tmp/out.json'])
135 self.assertEqual(out, { 156 self.assertEqual(out, {
136 'status': 'Found dependency', 157 'status': 'Found dependency',
137 'targets': ['foo_unittests'], 158 'targets': ['foo_unittests'],
138 'build_targets': ['foo_unittests'] 159 'build_targets': ['foo_unittests']
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 223
203 def test_lookup(self): 224 def test_lookup(self):
204 self.check(['lookup', '-c', 'gn_debug'], ret=0) 225 self.check(['lookup', '-c', 'gn_debug'], ret=0)
205 226
206 def test_validate(self): 227 def test_validate(self):
207 self.check(['validate'], ret=0) 228 self.check(['validate'], ret=0)
208 229
209 230
210 if __name__ == '__main__': 231 if __name__ == '__main__':
211 unittest.main() 232 unittest.main()
OLDNEW
« no previous file with comments | « tools/mb/mb.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698