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

Unified Diff: infra/tools/builder_alerts/test/buildbot_test.py

Issue 475943002: Add time and state to builder revision data (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Fix a couple style issues and address comments Created 6 years, 4 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 | « infra/tools/builder_alerts/buildbot.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: infra/tools/builder_alerts/test/buildbot_test.py
diff --git a/infra/tools/builder_alerts/test/buildbot_test.py b/infra/tools/builder_alerts/test/buildbot_test.py
index ee561a0fd5ee71ffe0c195e83cd6abd77cf93e7b..adae17e3514a9ea50fcd2c29fc18c93891fe8284 100644
--- a/infra/tools/builder_alerts/test/buildbot_test.py
+++ b/infra/tools/builder_alerts/test/buildbot_test.py
@@ -33,6 +33,268 @@ class BuildCacheTest(unittest.TestCase):
self.assertIsNone(cache.get('does_not_exist'))
self.assertIsNotNone(cache.key_age(test_key))
+ def test_latest_builder_info_for_master(self):
+ k_example_master_json = {
+ "builders": {
+ "Win Builder": {
+ "basedir": "Win_Builder",
+ "cachedBuilds": [
+ 0,
+ 1770,
+ 1771
+ ],
+ "category": "2windows",
+ "currentBuilds": [
+ 1772
+ ],
+ "pendingBuilds": 7,
+ "slaves": [
+ "build2-m1"
+ ],
+ "state": "building"
+ }
+ }
+ }
+
+ def mock_fetch_build_json(cache, master_url, builder_name, build_number):
+ k_example_build_json = {
+ "blame": [
+ "alexhenrie24@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98",
+ "yoshiki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98"
+ ],
+ "builderName": "Win Builder",
+ "currentStep": None,
+ "eta": None,
+ "number": 1771,
+ "properties": [
+ [
+ "build_archive_url",
+ ("gs://chromium-win-archive/chromium.win/"
+ "Win Builder/full-build-win32_289623.zip"),
+ "Annotation(package build)"
+ ],
+ [
+ "buildbotURL",
+ "http://build.chromium.org/p/chromium.win/",
+ "master.cfg"
+ ],
+ [
+ "buildername",
+ "Win Builder",
+ "Builder"
+ ],
+ [
+ "buildnumber",
+ 1771,
+ "Build"
+ ],
+ [
+ "git_revision",
+ "7ddb6d39574175cdd237eca54537e84fb960d3b8",
+ "Change"
+ ],
+ [
+ "got_nacl_revision",
+ 13611,
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_nacl_revision_git",
+ "570e50beb76a2bdf6be4b345cbd47f225caf90af",
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_revision",
+ 289623,
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_revision_git",
+ "7ddb6d39574175cdd237eca54537e84fb960d3b8",
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_swarming_client_revision",
+ "bbf1fcca7932d92cca9d7dab46ea271a7f6d61fb",
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_v8_revision",
+ 23117,
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_v8_revision_git",
+ "f284b29e37d97d7ee9128055862179dcbda7e398",
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_webkit_revision",
+ 180191,
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_webkit_revision_git",
+ "9df9a9e66fed3921ec1f620f92ea7333a9c18122",
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_webrtc_revision",
+ 6886,
+ "Annotation(bot_update)"
+ ],
+ [
+ "got_webrtc_revision_git",
+ "c2ef523233552340785557abce1129a0f61537eb",
+ "Annotation(bot_update)"
+ ],
+ [
+ "mastername",
+ "chromium.win",
+ "master.cfg"
+ ]
+ ],
+ "steps": [
+ {
+ "eta": None,
+ "expectations": [
+ [
+ "output",
+ 863225,
+ 748982.2582168579
+ ]
+ ],
+ "hidden": False,
+ "isFinished": True,
+ "isStarted": True,
+ "logs": [
+ [
+ "preamble",
+ ("http://build.chromium.org/p/chromium.win/builders/"\
+ "Win%20Builder/builds/1771/steps/steps/logs/preamble")
+ ],
+ [
+ "stdio",
+ ("http://build.chromium.org/p/chromium.win/builders/"\
+ "Win%20Builder/builds/1771/steps/steps/logs/stdio")
+ ]
+ ],
+ "name": "steps",
+ "results": [
+ 0,
+ []
+ ],
+ "step_number": 0,
+ "text": [
+ "running steps via annotated script"
+ ],
+ "times": [
+ 3.3,
+ 4.4
+ ],
+ "urls": {}
+ },
+ {
+ "eta": None,
+ "expectations": [],
+ "hidden": False,
+ "isFinished": True,
+ "isStarted": True,
+ "logs": [
+ [
+ "stdio",
+ ("http://build.chromium.org/p/chromium.win/builders/"\
+ "Win%20Builder/builds/1771/steps/setup_build/logs/stdio")
+ ],
+ [
+ "run_recipe",
+ ("http://build.chromium.org/p/chromium.win/builders/"\
+ "Win%20Builder/builds/1771/steps/setup_build/logs/run_recipe")
+ ]
+ ],
+ "name": "setup_build",
+ "results": [
+ 0,
+ []
+ ],
+ "step_number": 3,
+ "text": [
+ "setup_build",
+ "<br/>running recipe: \"chromium\""
+ ],
+ "times": [
+ 5.5,
+ 6.6
+ ],
+ "urls": {}
+ }
+ ],
+ "text": [
+ "build",
+ "successful"
+ ],
+ "times": [
+ 1.1,
+ 2.2
+ ],
+ }
+ return k_example_build_json
+
+ cache = buildbot.BuildCache(self.cache_path)
+ old_fetch_build_json = buildbot.fetch_build_json
+ try:
+ buildbot.fetch_build_json = mock_fetch_build_json
+
+ builder_info = buildbot.latest_builder_info_for_master(cache,
+ 'http://build.chromium.org/p/chromium.webkit', k_example_master_json)
+ expected_builder_info = {
+ 'chromium.webkit': {
+ 'Win Builder': {
+ 'state': 'building',
+ 'lastUpdateTime': 2.2,
+ 'revisions': {
+ 'v8': 23117,
+ 'chromium': 289623,
+ 'nacl': 13611,
+ 'blink': 180191
+ }
+ }
+ }
+ }
+ self.assertEqual(builder_info, expected_builder_info)
+ finally:
+ buildbot.fetch_build_json = old_fetch_build_json
+
+ def test_latest_update_time_for_builder(self):
+ k_example_last_build_times = {
+ "times": [
+ 10,
+ 11
+ ],
+ "steps": [
+ {
+ "times": [
+ 20,
+ 21
+ ]
+ },
+ {
+ "times": [
+ 22
+ ]
+ }
+ ]
+ }
+
+ # Test that we use end time when it's present,
+ time = buildbot.latest_update_time_for_builder(k_example_last_build_times)
+ self.assertEqual(time, 11)
+
+ # And test that we iterate across step start times when it isn't.
+ k_example_last_build_times["times"][1] = None
+ time = buildbot.latest_update_time_for_builder(k_example_last_build_times)
+ self.assertEqual(time, 22)
+
class BuildbotTest(unittest.TestCase):
def test_master_name_from_url(self):
« no previous file with comments | « infra/tools/builder_alerts/buildbot.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698