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

Side by Side Diff: bin/cros_au_test_harness.py

Issue 5597004: Create the latest_download dir if it doesn't exist. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git@master
Patch Set: Move download folder to crosutils. Created 10 years 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 | « no previous file | 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 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 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 import optparse 7 import optparse
8 import os 8 import os
9 import re 9 import re
10 import sys 10 import sys
(...skipping 30 matching lines...) Expand all
41 class AUTest(object): 41 class AUTest(object):
42 """Abstract interface that defines an Auto Update test.""" 42 """Abstract interface that defines an Auto Update test."""
43 source_image = '' 43 source_image = ''
44 use_delta_updates = False 44 use_delta_updates = False
45 45
46 def setUp(self): 46 def setUp(self):
47 unittest.TestCase.setUp(self) 47 unittest.TestCase.setUp(self)
48 # Set these up as they are used often. 48 # Set these up as they are used often.
49 self.crosutils = os.path.join(os.path.dirname(__file__), '..') 49 self.crosutils = os.path.join(os.path.dirname(__file__), '..')
50 self.crosutilsbin = os.path.join(os.path.dirname(__file__)) 50 self.crosutilsbin = os.path.join(os.path.dirname(__file__))
51 self.download_folder = os.path.join(self.crosutilsbin, 'latest_download') 51 self.download_folder = os.path.join(self.crosutils, 'latest_download')
52 if not os.path.exists(self.download_folder):
53 os.makedirs(self.download_folder)
52 54
53 def GetStatefulChangeFlag(self, stateful_change): 55 def GetStatefulChangeFlag(self, stateful_change):
54 """Returns the flag to pass to image_to_vm for the stateful change.""" 56 """Returns the flag to pass to image_to_vm for the stateful change."""
55 stateful_change_flag = '' 57 stateful_change_flag = ''
56 if stateful_change: 58 if stateful_change:
57 stateful_change_flag = '--stateful_update_flag=%s' % stateful_change 59 stateful_change_flag = '--stateful_update_flag=%s' % stateful_change
58 60
59 return stateful_change_flag 61 return stateful_change_flag
60 62
61 def ParseGenerateTestReportOutput(self, output): 63 def ParseGenerateTestReportOutput(self, output):
(...skipping 20 matching lines...) Expand all
82 except: 84 except:
83 Warning('Delta update failed, disabling delta updates and retrying.') 85 Warning('Delta update failed, disabling delta updates and retrying.')
84 self.use_delta_updates = False 86 self.use_delta_updates = False
85 self.source_image = '' 87 self.source_image = ''
86 self._UpdateImageReportError(image) 88 self._UpdateImageReportError(image)
87 else: 89 else:
88 self._UpdateImageReportError(image) 90 self._UpdateImageReportError(image)
89 91
90 def _UpdateImageReportError(self, image_path, stateful_change='old'): 92 def _UpdateImageReportError(self, image_path, stateful_change='old'):
91 """Calls UpdateImage and reports any error to the console. 93 """Calls UpdateImage and reports any error to the console.
92 94
93 Still throws the exception. 95 Still throws the exception.
94 """ 96 """
95 try: 97 try:
96 self.UpdateImage(image_path, stateful_change) 98 self.UpdateImage(image_path, stateful_change)
97 except UpdateException as err: 99 except UpdateException as err:
98 # If the update fails, print it out 100 # If the update fails, print it out
99 Warning(err.stdout) 101 Warning(err.stdout)
100 raise 102 raise
101 103
102 def _AttemptUpdateWithPayloadExpectedFailure(self, payload, expected_msg): 104 def _AttemptUpdateWithPayloadExpectedFailure(self, payload, expected_msg):
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 326
325 def setUp(self): 327 def setUp(self):
326 """Unit test overriden method. Is called before every test.""" 328 """Unit test overriden method. Is called before every test."""
327 AUTest.setUp(self) 329 AUTest.setUp(self)
328 self._KillExistingVM(_KVM_PID_FILE) 330 self._KillExistingVM(_KVM_PID_FILE)
329 331
330 def PrepareBase(self, image_path): 332 def PrepareBase(self, image_path):
331 """Creates an update-able VM based on base image.""" 333 """Creates an update-able VM based on base image."""
332 self.vm_image_path = '%s/chromiumos_qemu_image.bin' % os.path.dirname( 334 self.vm_image_path = '%s/chromiumos_qemu_image.bin' % os.path.dirname(
333 image_path) 335 image_path)
334 336
335 Info('Creating: %s' % self.vm_image_path) 337 Info('Creating: %s' % self.vm_image_path)
336 338
337 if not os.path.exists(self.vm_image_path): 339 if not os.path.exists(self.vm_image_path):
338 Info('Qemu image %s not found, creating one.' % self.vm_image_path) 340 Info('Qemu image %s not found, creating one.' % self.vm_image_path)
339 RunCommand(['%s/image_to_vm.sh' % self.crosutils, 341 RunCommand(['%s/image_to_vm.sh' % self.crosutils,
340 '--full', 342 '--full',
341 '--from=%s' % ReinterpretPathForChroot( 343 '--from=%s' % ReinterpretPathForChroot(
342 os.path.dirname(image_path)), 344 os.path.dirname(image_path)),
343 '--vdisk_size=%s' % _FULL_VDISK_SIZE, 345 '--vdisk_size=%s' % _FULL_VDISK_SIZE,
344 '--statefulfs_size=%s' % _FULL_STATEFULFS_SIZE, 346 '--statefulfs_size=%s' % _FULL_STATEFULFS_SIZE,
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 else: 474 else:
473 remote = options.remote 475 remote = options.remote
474 476
475 suite = unittest.TestLoader().loadTestsFromTestCase(RealAUTest) 477 suite = unittest.TestLoader().loadTestsFromTestCase(RealAUTest)
476 test_result = unittest.TextTestRunner(verbosity=2).run(suite) 478 test_result = unittest.TextTestRunner(verbosity=2).run(suite)
477 else: 479 else:
478 parser.error('Could not parse harness type %s.' % options.type) 480 parser.error('Could not parse harness type %s.' % options.type)
479 481
480 if not test_result.wasSuccessful(): 482 if not test_result.wasSuccessful():
481 Die('Test harness was not successful') 483 Die('Test harness was not successful')
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698