Deal with duplicates correctly rather than randomly fail.
BUG=None
TEST=manual run of --board=x86-generic
Change-Id: Ie9590b5d7b4d92eaa518ae4a13ecea3de848a04f
Reviewed-on: http://gerrit.chromium.org/gerrit/7476
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
diff --git a/ctest/ctest.py b/ctest/ctest.py
index 93b5715..4c089a5 100755
--- a/ctest/ctest.py
+++ b/ctest/ctest.py
@@ -154,6 +154,7 @@
cmd.append('--board=%s' % self.board)
if full:
cmd.append('--full_suite')
+ cmd.append('--nplus1')
if self.sign_payloads:
cmd.append('--public_key=%s' % self.public_key)
cmd.append('--private_key=%s' % self.private_key)
diff --git a/generate_test_payloads/cros_generate_test_payloads.py b/generate_test_payloads/cros_generate_test_payloads.py
index b4b57e8..e21edd4 100755
--- a/generate_test_payloads/cros_generate_test_payloads.py
+++ b/generate_test_payloads/cros_generate_test_payloads.py
@@ -36,6 +36,22 @@
self.target = target
self.key = key
+ def __str__(self):
+ my_repr = self.target
+ if self.base:
+ my_repr = self.base + '->' + my_repr
+
+ if self.key:
+ my_repr = my_repr + '+' + self.key
+
+ return my_repr
+
+ def __eq__(self, other):
+ return str(self) == str(other)
+
+ def __hash__(self):
+ return hash(str(self))
+
class UpdatePayloadGenerator(object):
"""Class responsible for generating update payloads."""
@@ -62,13 +78,13 @@
# Affect what payloads we create.
self.board = options.board
self.full_suite = options.full_suite
- self.payloads = []
+ self.payloads = set([])
self.nplus1 = options.nplus1
self.vm = options.vm
def _AddUpdatePayload(self, target, base, key=None):
"""Adds a new required update payload. If base is None, a full payload."""
- self.payloads.append(UpdatePayload(target, base, key))
+ self.payloads.add(UpdatePayload(target, base, key))
def GenerateImagesForTesting(self):
# All vm testing requires a VM'ized target.