| Index: bin/cros_au_test_harness.py
|
| diff --git a/bin/cros_au_test_harness.py b/bin/cros_au_test_harness.py
|
| index b9640b4c3fcc1be3365efdb5bd2b99b1b2967a63..7342310ce7f7b913a8e92d29c6e7f932db1847d7 100755
|
| --- a/bin/cros_au_test_harness.py
|
| +++ b/bin/cros_au_test_harness.py
|
| @@ -63,6 +63,21 @@ class AUTest(object):
|
|
|
| return int(percent_passed)
|
|
|
| + # TODO(sosa) - Remove try and convert function to DeltaUpdateImage().
|
| + def TryDeltaAndFallbackToFull(self, src_image, image, stateful_change='old'):
|
| + """Tries the delta update first if set and falls back to full update."""
|
| + if self.use_delta_updates:
|
| + try:
|
| + self.source_image = src_image
|
| + self.UpdateImage(image)
|
| + except:
|
| + Warning('Delta update failed, disabling delta updates and retrying.')
|
| + self.use_delta_updates = False
|
| + self.source_image = ''
|
| + self.UpdateImage(image)
|
| + else:
|
| + self.UpdateImage(image)
|
| +
|
| def PrepareBase(self):
|
| """Prepares target with base_image_path."""
|
| pass
|
| @@ -130,28 +145,14 @@ class AUTest(object):
|
| # with the dev channel.
|
| percent_passed = self.VerifyImage(10)
|
|
|
| - if self.use_delta_updates: self.source_image = base_image_path
|
| -
|
| # Update to - all tests should pass on new image.
|
| Info('Updating from base image on vm to target image.')
|
| - try:
|
| - self.UpdateImage(target_image_path)
|
| - except:
|
| - if self.use_delta_updates:
|
| - Warning('Delta update failed, disabling delta updates and retrying.')
|
| - self.use_delta_updates = False
|
| - self.source_image = ''
|
| - self.UpdateImage(target_image_path)
|
| - else:
|
| - raise
|
| -
|
| + self.TryDeltaAndFallbackToFull(base_image_path, target_image_path)
|
| self.VerifyImage(100)
|
|
|
| - if self.use_delta_updates: self.source_image = target_image_path
|
| -
|
| # Update from - same percentage should pass that originally passed.
|
| Info('Updating from updated image on vm back to base image.')
|
| - self.UpdateImage(base_image_path)
|
| + self.TryDeltaAndFallbackToFull(target_image_path, base_image_path)
|
| self.VerifyImage(percent_passed)
|
|
|
| def testFullUpdateWipeStateful(self):
|
| @@ -167,28 +168,14 @@ class AUTest(object):
|
| # with the dev channel.
|
| percent_passed = self.VerifyImage(10)
|
|
|
| - if self.use_delta_updates: self.source_image = base_image_path
|
| -
|
| # Update to - all tests should pass on new image.
|
| Info('Updating from base image on vm to target image and wiping stateful.')
|
| - try:
|
| - self.UpdateImage(target_image_path, 'clean')
|
| - except:
|
| - if self.use_delta_updates:
|
| - Warning('Delta update failed, disabling delta updates and retrying.')
|
| - self.use_delta_updates = False
|
| - self.source_image = ''
|
| - self.UpdateImage(target_image_path)
|
| - else:
|
| - raise
|
| -
|
| + self.TryDeltaAndFallbackToFull(base_image_path, target_image_path, 'clean')
|
| self.VerifyImage(100)
|
|
|
| - if self.use_delta_updates: self.source_image = target_image_path
|
| -
|
| # Update from - same percentage should pass that originally passed.
|
| Info('Updating from updated image back to base image and wiping stateful.')
|
| - self.UpdateImage(base_image_path, 'clean')
|
| + self.TryDeltaAndFallbackToFull(target_image_path, base_image_path, 'clean')
|
| self.VerifyImage(percent_passed)
|
|
|
|
|
|
|