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

Side by Side Diff: platform_tools/android/tests/makefile_writer_tests.py

Issue 235883015: Generate tests/Android.mk from gyp (Closed) Base URL: https://skia.googlesource.com/skia.git@generate
Patch Set: Remove Android.mk/SkUserConfig.h Created 6 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
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 # Copyright 2014 Google Inc. 3 # Copyright 2014 Google Inc.
4 # 4 #
5 # Use of this source code is governed by a BSD-style license that can be 5 # Use of this source code is governed by a BSD-style license that can be
6 # found in the LICENSE file. 6 # found in the LICENSE file.
7 7
8 """ 8 """
9 Test makefile_writer.py 9 Test makefile_writer.py
10 """ 10 """
11 11
12 import argparse 12 import argparse
13 import os 13 import os
14 import shutil 14 import shutil
15 import sys 15 import sys
16 import tempfile 16 import tempfile
17 import test_variables 17 import test_variables
18 import unittest 18 import unittest
19 import utils 19 import utils
20 20
21 sys.path.append(test_variables.GYP_GEN_DIR) 21 sys.path.append(test_variables.GYP_GEN_DIR)
22 22
23 import makefile_writer 23 import makefile_writer
24 import tool_makefile_writer
24 import vars_dict_lib 25 import vars_dict_lib
25 26
26 MAKEFILE_NAME = 'Android.mk' 27 MAKEFILE_NAME = test_variables.ANDROID_MK
27 REBASELINE_MSG = ('If you\'ve modified makefile_writer.py, run ' 28 REBASELINE_MSG = ('If you\'ve modified makefile_writer.py, run '
28 '"makefile_writer_tests.py --rebaseline" to rebaseline') 29 '"makefile_writer_tests.py --rebaseline" to rebaseline')
30 TOOL_DIR = 'tool'
29 31
30 def generate_dummy_vars_dict(name): 32 def generate_dummy_vars_dict(name):
31 """Create a VarsDict and fill it with dummy entries. 33 """Create a VarsDict and fill it with dummy entries.
32 34
33 Args: 35 Args:
34 name: string to be appended to each entry, if not None. 36 name: string to be appended to each entry, if not None.
35 37
36 Returns: 38 Returns:
37 A VarsDict with dummy entries. 39 A VarsDict with dummy entries.
38 """ 40 """
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 common_vars_dict = generate_dummy_vars_dict(None) 104 common_vars_dict = generate_dummy_vars_dict(None)
103 105
104 deviation_params = [('foo', 'COND'), ('bar', None)] 106 deviation_params = [('foo', 'COND'), ('bar', None)]
105 deviations = [generate_dummy_vars_dict_data(name, condition) 107 deviations = [generate_dummy_vars_dict_data(name, condition)
106 for (name, condition) in deviation_params] 108 for (name, condition) in deviation_params]
107 109
108 makefile_writer.write_android_mk(target_dir=target_dir, 110 makefile_writer.write_android_mk(target_dir=target_dir,
109 common=common_vars_dict, 111 common=common_vars_dict,
110 deviations_from_common=deviations) 112 deviations_from_common=deviations)
111 113
114 def generate_dummy_tool_makefile(target_dir):
115 """Create a dummy makefile for a tool.
116
117 Args:
118 target_dir: directory in which to write the resulting Android.mk
119 """
120 vars_dict = generate_dummy_vars_dict(None)
121 tool_makefile_writer.write_tool_android_mk(target_dir=target_dir,
122 var_dict=vars_dict)
123
112 124
113 class MakefileWriterTest(unittest.TestCase): 125 class MakefileWriterTest(unittest.TestCase):
114 126
115 def test_write_group_empty(self): 127 def test_write_group_empty(self):
116 f = tempfile.TemporaryFile() 128 f = tempfile.TemporaryFile()
117 assert f.tell() == 0 129 assert f.tell() == 0
118 for empty in (None, []): 130 for empty in (None, []):
119 for truth in (True, False): 131 for truth in (True, False):
120 makefile_writer.write_group(f, 'name', empty, truth) 132 makefile_writer.write_group(f, 'name', empty, truth)
121 self.assertEqual(f.tell(), 0) 133 self.assertEqual(f.tell(), 0)
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 174
163 def test_write_android_mk(self): 175 def test_write_android_mk(self):
164 outdir = tempfile.mkdtemp() 176 outdir = tempfile.mkdtemp()
165 generate_dummy_makefile(outdir) 177 generate_dummy_makefile(outdir)
166 178
167 utils.compare_to_expectation(os.path.join(outdir, MAKEFILE_NAME), 179 utils.compare_to_expectation(os.path.join(outdir, MAKEFILE_NAME),
168 MAKEFILE_NAME, self.assertTrue, REBASELINE_MSG) 180 MAKEFILE_NAME, self.assertTrue, REBASELINE_MSG)
169 181
170 shutil.rmtree(outdir) 182 shutil.rmtree(outdir)
171 183
184 def test_tool_writer(self):
185 outdir = tempfile.mkdtemp()
186 tool_dir = os.path.join(outdir, TOOL_DIR)
187 os.mkdir(tool_dir)
188 generate_dummy_tool_makefile(tool_dir)
189
190 utils.compare_to_expectation(os.path.join(tool_dir, MAKEFILE_NAME),
191 os.path.join(TOOL_DIR, MAKEFILE_NAME),
192 self.assertTrue, REBASELINE_MSG)
172 193
173 def main(): 194 def main():
174 loader = unittest.TestLoader() 195 loader = unittest.TestLoader()
175 suite = loader.loadTestsFromTestCase(MakefileWriterTest) 196 suite = loader.loadTestsFromTestCase(MakefileWriterTest)
176 results = unittest.TextTestRunner(verbosity=2).run(suite) 197 results = unittest.TextTestRunner(verbosity=2).run(suite)
177 print repr(results) 198 print repr(results)
178 if not results.wasSuccessful(): 199 if not results.wasSuccessful():
179 raise Exception('failed one or more unittests') 200 raise Exception('failed one or more unittests')
180 201
181 202
182 def rebaseline(): 203 def rebaseline():
183 generate_dummy_makefile(utils.EXPECTATIONS_DIR) 204 generate_dummy_makefile(utils.EXPECTATIONS_DIR)
184 205
185 vars_dict = generate_dummy_vars_dict(None) 206 vars_dict = generate_dummy_vars_dict(None)
186 for (filename, append, name) in generate_write_local_vars_params(): 207 for (filename, append, name) in generate_write_local_vars_params():
187 with open(os.path.join(utils.EXPECTATIONS_DIR, filename), 'w') as f: 208 with open(os.path.join(utils.EXPECTATIONS_DIR, filename), 'w') as f:
188 makefile_writer.write_local_vars(f, vars_dict, append, name) 209 makefile_writer.write_local_vars(f, vars_dict, append, name)
189 210
211 generate_dummy_tool_makefile(os.path.join(utils.EXPECTATIONS_DIR, TOOL_DIR))
212
190 213
191 if __name__ == '__main__': 214 if __name__ == '__main__':
192 parser = argparse.ArgumentParser() 215 parser = argparse.ArgumentParser()
193 parser.add_argument('-r', '--rebaseline', help='Rebaseline expectations.', 216 parser.add_argument('-r', '--rebaseline', help='Rebaseline expectations.',
194 action='store_true') 217 action='store_true')
195 args = parser.parse_args() 218 args = parser.parse_args()
196 219
197 if args.rebaseline: 220 if args.rebaseline:
198 rebaseline() 221 rebaseline()
199 else: 222 else:
200 main() 223 main()
201 224
OLDNEW
« no previous file with comments | « platform_tools/android/tests/gyp_to_android_tests.py ('k') | platform_tools/android/tests/ordered_set_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698