From 4ad64458cb8028e739e3dacff68ca214dbb5d4ab Mon Sep 17 00:00:00 2001 From: "phoglund@webrtc.org" Date: Fri, 18 Jan 2013 13:44:21 +0000 Subject: [PATCH] Fixed URL unquoting in bot names. Added iOS Device. Removed unnecessary filter code. BUG= Review URL: https://webrtc-codereview.appspot.com/1046005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3387 4adac7df-926f-26a2-2b94-8c16560cd09d --- tools/quality_tracking/tgrid_parser.py | 3 +- tools/quality_tracking/tgrid_parser_test.py | 11 ++++--- tools/quality_tracking/track_build_status.py | 9 ------ .../track_build_status_test.py | 31 +++++-------------- 4 files changed, 16 insertions(+), 38 deletions(-) mode change 100644 => 100755 tools/quality_tracking/track_build_status.py mode change 100644 => 100755 tools/quality_tracking/track_build_status_test.py diff --git a/tools/quality_tracking/tgrid_parser.py b/tools/quality_tracking/tgrid_parser.py index b255bf6c92..ddfed1ed79 100644 --- a/tools/quality_tracking/tgrid_parser.py +++ b/tools/quality_tracking/tgrid_parser.py @@ -16,6 +16,7 @@ __author__ = 'phoglund@webrtc.org (Patrik Höglund)' import re +import urllib # This is here to work around a buggy build bot status message which makes no @@ -50,7 +51,7 @@ def _parse_builds(revision, html): BB_084_P1_BUGGY_STATUS + ')' '.*?.*?', html, re.DOTALL): - revision_and_bot_name = revision + "--" + match.group(1) + revision_and_bot_name = revision + "--" + urllib.unquote(match.group(1)) build_number_and_status = match.group(2) + "--" + _map_status( match.group(3)) diff --git a/tools/quality_tracking/tgrid_parser_test.py b/tools/quality_tracking/tgrid_parser_test.py index c772ac3e62..8ca687098a 100755 --- a/tools/quality_tracking/tgrid_parser_test.py +++ b/tools/quality_tracking/tgrid_parser_test.py @@ -55,7 +55,6 @@ SAMPLE_FILE = """ WebRTC - Android @@ -443,7 +442,7 @@ MINIMAL_OK = """ 1570 -OK +OK """ @@ -451,7 +450,8 @@ MINIMAL_FAIL = """ 1573 - failed
voe_auto_test
+ failed
voe_auto_test +
""" @@ -512,7 +512,8 @@ class TGridParserTest(unittest.TestCase): self.assertEqual(1, len(result), 'There is only one bot in the sample.') first_mapping = result.items()[0] - self.assertEqual('1570--Android', first_mapping[0]) + # Note: the parser should unescape % quotations, like %20 for space. + self.assertEqual('1570--Linux Clang [stable]', first_mapping[0]) self.assertEqual('121--OK', first_mapping[1]) def test_parser_finds_failed_bot(self): @@ -521,7 +522,7 @@ class TGridParserTest(unittest.TestCase): self.assertEqual(1, len(result), 'There is only one bot in the sample.') first_mapping = result.items()[0] - self.assertEqual('1573--LinuxVideoTest', first_mapping[0]) + self.assertEqual('1573--Linux Large Tests', first_mapping[0]) self.assertEqual('731--failed', first_mapping[1]) def test_parser_finds_building_bot(self): diff --git a/tools/quality_tracking/track_build_status.py b/tools/quality_tracking/track_build_status.py old mode 100644 new mode 100755 index b15d773f08..a5d983de5c --- a/tools/quality_tracking/track_build_status.py +++ b/tools/quality_tracking/track_build_status.py @@ -89,14 +89,6 @@ def _filter_undesired_bots(bot_to_status_mapping, desired_bot_names): return result -def _filter_chrome_only_builds(bot_to_status_mapping): - """Filters chrome-only builds from the system so LKGR doesn't get confused.""" - return dict((revision_to_bot_name, status) - for revision_to_bot_name, status - in bot_to_status_mapping.iteritems() - if not _is_chrome_only_build(revision_to_bot_name)) - - def _main(): dashboard = dashboard_connection.DashboardConnection(constants.CONSUMER_KEY) dashboard.read_required_files(constants.CONSUMER_SECRET_FILE, @@ -104,7 +96,6 @@ def _main(): bot_to_status_mapping = _download_and_parse_build_status() bot_to_status_mapping = _filter_undesired_bots(bot_to_status_mapping, BOTS) - bot_to_status_mapping = _filter_chrome_only_builds(bot_to_status_mapping) dashboard.send_post_request(constants.ADD_BUILD_STATUS_DATA_URL, bot_to_status_mapping) diff --git a/tools/quality_tracking/track_build_status_test.py b/tools/quality_tracking/track_build_status_test.py old mode 100644 new mode 100755 index 87a904e3a0..0c77323a20 --- a/tools/quality_tracking/track_build_status_test.py +++ b/tools/quality_tracking/track_build_status_test.py @@ -17,35 +17,20 @@ import unittest import track_build_status -NORMAL_BOT_TO_STATUS_MAPPING = {'1455--ChromeOS': '455--OK', - '1455--Chrome': '900--failed', - '1455--Linux32DBG': '344--OK', - '1456--ChromeOS': '456--OK'} +NORMAL_BOT_TO_STATUS_MAPPING = { + '1455--Win 64 Release': '455--OK', + '1455--CrOS': '900--failed', + '1455--Linux32 Debug': '344--OK', + '1456--Win Large Tests': '456--OK'} class TrackBuildStatusTest(unittest.TestCase): - def test_that_filter_chrome_only_builds_filter_properly(self): - bot_to_status_mapping = copy.deepcopy(NORMAL_BOT_TO_STATUS_MAPPING) - bot_to_status_mapping['133445--Chrome'] = '901--OK' - bot_to_status_mapping['133441--ChromeBloat'] = '344--OK' - - result = track_build_status._filter_chrome_only_builds( - bot_to_status_mapping) - - self.assertEquals(NORMAL_BOT_TO_STATUS_MAPPING, result) - - def test_ensure_filter_chrome_only_builds_doesnt_filter_too_much(self): - result = track_build_status._filter_chrome_only_builds( - NORMAL_BOT_TO_STATUS_MAPPING) - - self.assertEquals(NORMAL_BOT_TO_STATUS_MAPPING, result) - def test_get_desired_bots(self): bot_to_status_mapping = copy.deepcopy(NORMAL_BOT_TO_STATUS_MAPPING) - desired_bot_names = ['Linux32DBG'] - result = track_build_status._get_desired_bots(bot_to_status_mapping, - desired_bot_names) + desired_bot_names = ['Linux32 Debug'] + result = track_build_status._filter_undesired_bots(bot_to_status_mapping, + desired_bot_names) self.assertEquals(1, len(result)) self.assertTrue(desired_bot_names[0] in result.keys()[0])