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

Side by Side Diff: au_test_harness/cros_au_test_harness.py

Issue 6857004: Clean up extreme verbosity of logs in test harness. (Closed) Base URL: http://git.chromium.org/git/crostestutils.git@master
Patch Set: FOr dj Created 9 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 | Annotate | Revision Log
« no previous file with comments | « au_test_harness/au_worker.py ('k') | au_test_harness/dummy_au_worker.py » ('j') | 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 2
3 # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """This module runs a suite of Auto Update tests. 7 """This module runs a suite of Auto Update tests.
8 8
9 The tests can be run on either a virtual machine or actual device depending 9 The tests can be run on either a virtual machine or actual device depending
10 on parameters given. Specific tests can be run by invoking --test_prefix. 10 on parameters given. Specific tests can be run by invoking --test_prefix.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 ] 61 ]
62 # Add actual args to command. 62 # Add actual args to command.
63 command.append('--image=%s' % cros_lib.ReinterpretPathForChroot(target)) 63 command.append('--image=%s' % cros_lib.ReinterpretPathForChroot(target))
64 if src: command.append('--src_image=%s' % 64 if src: command.append('--src_image=%s' %
65 cros_lib.ReinterpretPathForChroot(src)) 65 cros_lib.ReinterpretPathForChroot(src))
66 if options.type == 'vm': command.append('--for_vm') 66 if options.type == 'vm': command.append('--for_vm')
67 if private_key_path: 67 if private_key_path:
68 command.append('--private_key=%s' % 68 command.append('--private_key=%s' %
69 cros_lib.ReinterpretPathForChroot(private_key_path)) 69 cros_lib.ReinterpretPathForChroot(private_key_path))
70 70
71 return cros_lib.RunCommand(command, enter_chroot=True, print_cmd=True, 71 if src:
72 debug_message = 'delta update payload from %s to %s' % (target, src)
73 else:
74 debug_message = 'full update payload to %s' % target
75
76 if private_key_path:
77 debug_message = 'Generating a signed ' + debug_message
78 else:
79 debug_message = 'Generating an unsigned ' + debug_message
80
81 cros_lib.Info(debug_message)
82 return cros_lib.RunCommand(command, enter_chroot=True, print_cmd=False,
dgarrett 2011/04/18 22:01:39 LGTM to for change alone. ;>
72 cwd=cros_lib.GetCrosUtilsPath(), 83 cwd=cros_lib.GetCrosUtilsPath(),
73 log_to_file=log_file, error_ok=True, 84 log_to_file=log_file, error_ok=True,
74 exit_code=True) 85 exit_code=True)
75 86
76 def _ProcessGeneratorOutputs(log_files, return_codes): 87 def _ProcessGeneratorOutputs(log_files, return_codes):
77 """Processes results from the log files of GenerateVMUpdate calls. 88 """Processes results from the log files of GenerateVMUpdate calls.
78 89
79 Returns an array of cache entries from the log files. 90 Returns an array of cache entries from the log files.
80 """ 91 """
81 return_array = [] 92 return_array = []
(...skipping 17 matching lines...) Expand all
99 path_to_update_gz = match.group(1).rstrip() 110 path_to_update_gz = match.group(1).rstrip()
100 (path_to_update_dir, _, _) = path_to_update_gz.rpartition( 111 (path_to_update_dir, _, _) = path_to_update_gz.rpartition(
101 '/update.gz') 112 '/update.gz')
102 return_array.append('/'.join(['update', path_to_update_dir])) 113 return_array.append('/'.join(['update', path_to_update_dir]))
103 114
104 assert len(return_array) == len(log_files), 'Return result size mismatch.' 115 assert len(return_array) == len(log_files), 'Return result size mismatch.'
105 return return_array 116 return return_array
106 117
107 # Use dummy class to mock out updates that would be run as part of a test. 118 # Use dummy class to mock out updates that would be run as part of a test.
108 test_suite = _PrepareTestSuite(options, use_dummy_worker=True) 119 test_suite = _PrepareTestSuite(options, use_dummy_worker=True)
109 test_result = unittest.TextTestRunner(verbosity=0).run(test_suite) 120 test_result = unittest.TextTestRunner().run(test_suite)
110 if not test_result.wasSuccessful(): 121 if not test_result.wasSuccessful():
111 raise update_exception.UpdateException(1, 122 raise update_exception.UpdateException(1,
112 'Error finding updates to generate.') 123 'Error finding updates to generate.')
113 124
114 cros_lib.Info('The following delta updates are required.')
115 update_ids = [] 125 update_ids = []
116 jobs = [] 126 jobs = []
117 args = [] 127 args = []
118 log_files = [] 128 log_files = []
119 modified_images = set() 129 modified_images = set()
120 for target, srcs in dummy_au_worker.DummyAUWorker.delta_list.items(): 130 for target, srcs in dummy_au_worker.DummyAUWorker.delta_list.items():
121 modified_images.add(target) 131 modified_images.add(target)
122 for src_key in srcs: 132 for src_key in srcs:
123 log_file = tempfile.mktemp('GenerateVMUpdate') 133 log_file = tempfile.mktemp('GenerateVMUpdate')
124 (src, _ , key) = src_key.partition('+') 134 (src, _ , key) = src_key.partition('+')
125 if src: modified_images.add(src) 135 if src: modified_images.add(src)
126 # TODO(sosa): Add private key as part of caching name once devserver can 136 # TODO(sosa): Add private key as part of caching name once devserver can
127 # handle it its own cache. 137 # handle it its own cache.
128 update_id = dev_server_wrapper.GenerateUpdateId(target, src, key) 138 update_id = dev_server_wrapper.GenerateUpdateId(target, src, key)
129 print >> sys.stderr, 'AU: %s' % update_id
130 update_ids.append(update_id) 139 update_ids.append(update_id)
131 jobs.append(_GenerateVMUpdate) 140 jobs.append(_GenerateVMUpdate)
132 args.append((target, src, key, log_file)) 141 args.append((target, src, key, log_file))
133 log_files.append(log_file) 142 log_files.append(log_file)
134 143
135 # Always add the base image path. This is only useful for non-delta updates. 144 # Always add the base image path. This is only useful for non-delta updates.
136 modified_images.add(options.base_image) 145 modified_images.add(options.base_image)
137 146
138 # Add public key to all images we are using. 147 # Add public key to all images we are using.
139 if options.public_key: 148 if options.public_key:
(...skipping 15 matching lines...) Expand all
155 164
156 165
157 def _RunTestsInParallel(options): 166 def _RunTestsInParallel(options):
158 """Runs the tests given by the options in parallel.""" 167 """Runs the tests given by the options in parallel."""
159 threads = [] 168 threads = []
160 args = [] 169 args = []
161 test_suite = _PrepareTestSuite(options) 170 test_suite = _PrepareTestSuite(options)
162 for test in test_suite: 171 for test in test_suite:
163 test_name = test.id() 172 test_name = test.id()
164 test_case = unittest.TestLoader().loadTestsFromName(test_name) 173 test_case = unittest.TestLoader().loadTestsFromName(test_name)
165 threads.append(unittest.TextTestRunner(verbosity=2).run) 174 threads.append(unittest.TextTestRunner().run)
166 args.append(test_case) 175 args.append(test_case)
167 176
168 results = parallel_test_job.RunParallelJobs(options.jobs, threads, args) 177 results = parallel_test_job.RunParallelJobs(options.jobs, threads, args)
169 for test_result in results: 178 for test_result in results:
170 if not test_result.wasSuccessful(): 179 if not test_result.wasSuccessful():
171 cros_lib.Die('Test harness was not successful') 180 cros_lib.Die('Test harness was not successful')
172 181
173 182
174 def _CleanPreviousWork(options): 183 def _CleanPreviousWork(options):
175 """Cleans up previous work from the devserver cache and local image cache.""" 184 """Cleans up previous work from the devserver cache and local image cache."""
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 my_server = dev_server_wrapper.DevServerWrapper( 271 my_server = dev_server_wrapper.DevServerWrapper(
263 au_test.AUTest.test_results_root) 272 au_test.AUTest.test_results_root)
264 my_server.start() 273 my_server.start()
265 try: 274 try:
266 if options.type == 'vm': 275 if options.type == 'vm':
267 _RunTestsInParallel(options) 276 _RunTestsInParallel(options)
268 else: 277 else:
269 # TODO(sosa) - Take in a machine pool for a real test. 278 # TODO(sosa) - Take in a machine pool for a real test.
270 # Can't run in parallel with only one remote device. 279 # Can't run in parallel with only one remote device.
271 test_suite = _PrepareTestSuite(options) 280 test_suite = _PrepareTestSuite(options)
272 test_result = unittest.TextTestRunner(verbosity=2).run(test_suite) 281 test_result = unittest.TextTestRunner().run(test_suite)
273 if not test_result.wasSuccessful(): cros_lib.Die('Test harness failed.') 282 if not test_result.wasSuccessful(): cros_lib.Die('Test harness failed.')
274 283
275 finally: 284 finally:
276 my_server.Stop() 285 my_server.Stop()
277 286
278 finally: 287 finally:
279 # Un-modify any target images we modified. We don't need to un-modify 288 # Un-modify any target images we modified. We don't need to un-modify
280 # non-targets because they aren't important for archival steps. 289 # non-targets because they aren't important for archival steps.
281 if options.public_key: 290 if options.public_key:
282 cros_lib.Info('Cleaning up. Removing keys added as part of testing.') 291 cros_lib.Info('Cleaning up. Removing keys added as part of testing.')
283 target_directory = os.path.dirname(options.target_image) 292 target_directory = os.path.dirname(options.target_image)
284 for key_manager in au_test.AUTest.public_key_managers: 293 for key_manager in au_test.AUTest.public_key_managers:
285 if key_manager.image_path.startswith(target_directory): 294 if key_manager.image_path.startswith(target_directory):
286 key_manager.RemoveKeyFromImage() 295 key_manager.RemoveKeyFromImage()
287 296
288 297
289 if __name__ == '__main__': 298 if __name__ == '__main__':
290 main() 299 main()
OLDNEW
« no previous file with comments | « au_test_harness/au_worker.py ('k') | au_test_harness/dummy_au_worker.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698