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

Unified Diff: tests/try_job_on_rietveld_test.py

Issue 10907197: Differentiate between tests that needs to be run or need to wait for completion. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/commit-queue
Patch Set: Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | verification/try_job_on_rietveld.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/try_job_on_rietveld_test.py
diff --git a/tests/try_job_on_rietveld_test.py b/tests/try_job_on_rietveld_test.py
index 1d5ed321e3831a69345a64c55f155ea78677ba64..d762d127045184b904b1d45721ae4eda3cc3a506 100755
--- a/tests/try_job_on_rietveld_test.py
+++ b/tests/try_job_on_rietveld_test.py
@@ -73,6 +73,21 @@ def _posted(builders):
return 'trigger_try_jobs(42, 23, \'CQ\', False, None, %s)' % str(builders)
+def gen_job_pending(**kwargs):
+ value = {
+ '__persistent_module__': 'verification.try_job_on_rietveld',
+ '__persistent_type__': 'RietveldTryJobPending',
+ 'builder': None,
+ 'clobber': False,
+ 'requested_steps': [],
+ 'revision': None,
+ 'tries': 1,
+ }
+ assert all(arg in value for arg in kwargs)
+ value.update(kwargs)
+ return value
+
+
def gen_job(**kwargs):
value = {
'__persistent_module__': 'verification.try_job_on_rietveld',
@@ -155,8 +170,8 @@ class TryJobOnRietveldTest(mocks.TestCase):
'mac': ['test1', 'test2'],
},
pendings=[
- gen_job(builder='linux', requested_steps=['test1', 'test2']),
- gen_job(builder='mac', requested_steps=['test1', 'test2']),
+ gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
+ gen_job_pending(builder='mac', requested_steps=['test1', 'test2']),
])
self.assertEquals(expected, actual)
@@ -232,7 +247,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
'mac': ['test1', 'test2'],
},
pendings=[
- gen_job(builder='linux', requested_steps=['test1', 'test2']),
+ gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
],
try_jobs={
key: gen_job(
@@ -308,7 +323,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
'mac': ['test1', 'test2'],
},
pendings=[
- gen_job(builder='mac', requested_steps=['test2'], tries=2),
+ gen_job_pending(builder='mac', requested_steps=['test2'], tries=2),
],
try_jobs={
key1: gen_job(
@@ -393,7 +408,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
'mac': ['test1', 'test2'],
},
pendings=[
- gen_job(builder='mac', requested_steps=['test2'], tries=2),
+ gen_job_pending(builder='mac', requested_steps=['test2'], tries=2),
],
try_jobs={
key1: gen_job(
@@ -429,7 +444,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
'mac': ['test1', 'test2'],
},
pendings=[
- gen_job(builder='mac', requested_steps=['test2'], tries=3),
+ gen_job_pending(builder='mac', requested_steps=['test2'], tries=3),
],
try_jobs={
key1: gen_job(
@@ -490,7 +505,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
'mac': ['test1', 'test2'],
},
pendings=[
- gen_job(builder='linux', requested_steps=['test1', 'test2']),
+ gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
],
try_jobs={
key1: gen_job(
@@ -522,8 +537,6 @@ class TryJobOnRietveldTest(mocks.TestCase):
])
self.try_runner.update_status([self.pending])
- # self.timestamp is a mock for time.time()
- started = self.timestamp[-1]
expected = gen_jobs(
builders_and_tests={
'linux': ['test1', 'test2'],
@@ -531,14 +544,8 @@ class TryJobOnRietveldTest(mocks.TestCase):
},
irrelevant=[key1],
pendings=[
- gen_job(
- builder='linux',
- requested_steps=['test1', 'test2'],
- started=started),
- gen_job(
- builder='mac',
- requested_steps=['test1', 'test2'],
- started=started),
+ gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
+ gen_job_pending(builder='mac', requested_steps=['test1', 'test2']),
])
self.assertEquals(expected, self._get_verif().as_dict())
self.assertEquals(base.PROCESSING, self.pending.get_state())
@@ -573,8 +580,8 @@ class TryJobOnRietveldTest(mocks.TestCase):
'mac': ['test1', 'test2'],
},
pendings=[
- gen_job(builder='linux', requested_steps=['test1', 'test2']),
- gen_job(builder='mac', requested_steps=['test1']),
+ gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
+ gen_job_pending(builder='mac', requested_steps=['test1']),
],
try_jobs={
key1: gen_job(
@@ -644,6 +651,108 @@ class TryJobOnRietveldTest(mocks.TestCase):
self.assertEquals(base.SUCCEEDED, self.pending.get_state())
self.assertEquals('', self.pending.error_message())
+ def testRietveldTryJobs_1(self):
+ jobs = try_job_on_rietveld.RietveldTryJobs()
+ jobs.builders_and_tests['builder1'] = ['test10', 'test11']
+ jobs.try_jobs['key1'] = try_job_on_rietveld.RietveldTryJob(
+ builder='builder1',
+ build=12,
+ revision=13,
+ requested_steps=['test10'],
+ started=time.time(),
+ passed=['test10'],
+ failed=[],
+ clobber=False,
+ completed=True,
+ tries=1)
+ self.assertEquals({'builder1': ['test11']}, jobs.tests_need_to_be_run())
+ self.assertEquals({'builder1': ['test11']}, jobs.tests_waiting_for_result())
+
+ def testRietveldTryJobs_2(self):
+ jobs = try_job_on_rietveld.RietveldTryJobs()
+ jobs.builders_and_tests['builder1'] = ['test10', 'test11']
+ jobs.try_jobs['key1'] = try_job_on_rietveld.RietveldTryJob(
+ 'builder1',
+ 12,
+ 13,
+ ['test10'],
+ time.time(),
+ ['test10'],
+ [],
+ False,
+ True,
+ 1)
+ self.assertEquals({'builder1': ['test11']}, jobs.tests_need_to_be_run())
+ self.assertEquals({'builder1': ['test11']}, jobs.tests_waiting_for_result())
+
+ def testRietveldTryJobs_3(self):
+ jobs = try_job_on_rietveld.RietveldTryJobs()
+ jobs.builders_and_tests['builder1'] = ['test10', 'test11']
+ jobs.try_jobs['key1'] = try_job_on_rietveld.RietveldTryJob(
+ builder='builder1',
+ build=12,
+ revision=13,
+ requested_steps=['test10'],
+ started=time.time(),
+ passed=['test10'],
+ failed=[],
+ clobber=False,
+ completed=True,
+ tries=1)
+ jobs.pendings.append(
+ try_job_on_rietveld.RietveldTryJobPending(
+ builder='builder1',
+ revision=13,
+ requested_steps=['test11'],
+ clobber=False,
+ tries=1))
+ self.assertEquals({}, jobs.tests_need_to_be_run())
+ self.assertEquals({'builder1': ['test11']}, jobs.tests_waiting_for_result())
+
+ def testRietveldTryJobs_4(self):
+ # Construct an instance that has both tests to trigger and tests that are
+ # pending results.
+ jobs = try_job_on_rietveld.RietveldTryJobs()
+ jobs.builders_and_tests = {
+ 'builder1': ['test10', 'test11'],
+ 'builder2': ['test20', 'test21'],
+ }
+ jobs.try_jobs['key1'] = try_job_on_rietveld.RietveldTryJob(
+ builder='builder1',
+ build=12,
+ revision=13,
+ requested_steps=['test10'],
+ started=time.time(),
+ passed=['test10'],
+ failed=[],
+ clobber=False,
+ completed=True,
+ tries=1)
+ jobs.try_jobs['key2'] = try_job_on_rietveld.RietveldTryJob(
+ builder='builder2',
+ build=13,
+ revision=14,
+ requested_steps=[],
+ started=time.time(),
+ passed=['test21'],
+ failed=[],
+ clobber=False,
+ completed=False,
+ tries=1)
+ jobs.pendings.append(
+ try_job_on_rietveld.RietveldTryJobPending(
+ builder='builder2',
+ revision=14,
+ requested_steps=['test20'],
+ clobber=False,
+ tries=1))
+ # test11 is still not queued to be run but build with test20 in it has still
+ # not started yet.
+ self.assertEquals({'builder1': ['test11']}, jobs.tests_need_to_be_run())
+ self.assertEquals(
+ {'builder1': ['test11'], 'builder2': ['test20']},
+ jobs.tests_waiting_for_result())
+
if __name__ == '__main__':
logging.basicConfig(
« no previous file with comments | « no previous file | verification/try_job_on_rietveld.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698