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

Side by Side Diff: appengine/findit/waterfall/test/buildbot_test.py

Issue 1149743002: [Findit] Use step level analysis to exclude flaky test failures. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Add logic to handle cases when 'gtest_results' is 'invalid' or flaky. Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from datetime import datetime 5 from datetime import datetime
6 import gzip
6 import os 7 import os
8
9 import cloudstorage as gcs
7 import unittest 10 import unittest
stgao 2015/05/27 00:18:21 unittest is in the standard python library, not a
chanli 2015/05/27 00:32:15 Done.
8 11
9 from common.retry_http_client import RetryHttpClient 12 from common.retry_http_client import RetryHttpClient
10 from waterfall import buildbot 13 from waterfall import buildbot
11 14
12 15
13 class DummyHttpClient(RetryHttpClient): 16 class DummyHttpClient(RetryHttpClient):
14 17
15 def __init__(self, status_code, response_content): 18 def __init__(self, status_code, response_content):
16 self.status_code = status_code 19 self.status_code = status_code
17 self.response_content = response_content 20 self.response_content = response_content
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 step_name = '[trigger] abc_tests' 116 step_name = '[trigger] abc_tests'
114 expected_stdio_log_url = ('https://build.chromium.org/p/a/builders/' 117 expected_stdio_log_url = ('https://build.chromium.org/p/a/builders/'
115 'Win7%20Tests%20%281%29/builds/123/steps/' 118 'Win7%20Tests%20%281%29/builds/123/steps/'
116 '%5Btrigger%5D%20abc_tests/logs/stdio/text') 119 '%5Btrigger%5D%20abc_tests/logs/stdio/text')
117 120
118 self.assertEqual( 121 self.assertEqual(
119 expected_stdio_log_url, 122 expected_stdio_log_url,
120 buildbot.CreateStdioLogUrl( 123 buildbot.CreateStdioLogUrl(
121 master_name, builder_name, build_number, step_name)) 124 master_name, builder_name, build_number, step_name))
122 125
126 def testCreateGtestResultPath(self):
127 master_name = 'a'
128 builder_name = 'Win7 Tests (1)'
129 build_number = 123
130 step_name = '[trigger] abc_tests'
131 expected_stdio_log_url = ('/chrome-gtest-results/buildbot/a/Win7 Tests '
132 '(1)/123/[trigger] abc_tests.json.gz')
133
134 self.assertEqual(
135 expected_stdio_log_url,
136 buildbot.CreateGtestResultPath(
137 master_name, builder_name, build_number, step_name))
138
123 def testGetBuildDataFromArchiveSuccess(self): 139 def testGetBuildDataFromArchiveSuccess(self):
124 master_name = 'a' 140 master_name = 'a'
125 builder_name = 'b c' 141 builder_name = 'b c'
126 build_number = 1 142 build_number = 1
127 expected_url = ('https://chrome-build-extract.appspot.com/p/a/builders/' 143 expected_url = ('https://chrome-build-extract.appspot.com/p/a/builders/'
128 'b%20c/builds/1?json=1') 144 'b%20c/builds/1?json=1')
129 http_client = DummyHttpClient(200, 'abc') 145 http_client = DummyHttpClient(200, 'abc')
130 data = buildbot.GetBuildDataFromArchive( 146 data = buildbot.GetBuildDataFromArchive(
131 master_name, builder_name, build_number, http_client) 147 master_name, builder_name, build_number, http_client)
132 self.assertEqual(http_client.response_content, data) 148 self.assertEqual(http_client.response_content, data)
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 self.assertEqual(master_name, build_info.master_name) 345 self.assertEqual(master_name, build_info.master_name)
330 self.assertEqual(builder_name, build_info.builder_name) 346 self.assertEqual(builder_name, build_info.builder_name)
331 self.assertEqual(build_number, build_info.build_number) 347 self.assertEqual(build_number, build_info.build_number)
332 self.assertEqual(expected_build_start_time, build_info.build_start_time) 348 self.assertEqual(expected_build_start_time, build_info.build_start_time)
333 self.assertEqual(expected_chromium_revision, build_info.chromium_revision) 349 self.assertEqual(expected_chromium_revision, build_info.chromium_revision)
334 self.assertEqual(expected_completed, build_info.completed) 350 self.assertEqual(expected_completed, build_info.completed)
335 self.assertEqual(expected_result, build_info.result) 351 self.assertEqual(expected_result, build_info.result)
336 self.assertEqual(expected_blame_list, build_info.blame_list) 352 self.assertEqual(expected_blame_list, build_info.blame_list)
337 self.assertEqual(expected_failed_steps, build_info.failed_steps) 353 self.assertEqual(expected_failed_steps, build_info.failed_steps)
338 self.assertEqual(expected_passed_steps, build_info.passed_steps) 354 self.assertEqual(expected_passed_steps, build_info.passed_steps)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698