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

Side by Side Diff: tools/telemetry/telemetry/results/page_test_results_unittest.py

Issue 962793004: [Telemetry] Make "discard_first_result" apply to user_stories too. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments. Created 5 years, 9 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 import os 5 import os
6 import unittest
6 7
7 from telemetry import page as page_module 8 from telemetry import page as page_module
8 from telemetry.page import page_set 9 from telemetry.page import page_set
9 from telemetry.results import base_test_results_unittest 10 from telemetry.results import base_test_results_unittest
10 from telemetry.results import page_test_results 11 from telemetry.results import page_test_results
11 from telemetry.timeline import trace_data 12 from telemetry.timeline import trace_data
12 from telemetry.value import failure 13 from telemetry.value import failure
13 from telemetry.value import histogram 14 from telemetry.value import histogram
14 from telemetry.value import scalar 15 from telemetry.value import scalar
15 from telemetry.value import skip 16 from telemetry.value import skip
(...skipping 21 matching lines...) Expand all
37 results.WillRunPage(self.pages[1]) 38 results.WillRunPage(self.pages[1])
38 results.DidRunPage(self.pages[1]) 39 results.DidRunPage(self.pages[1])
39 40
40 self.assertEqual(set([self.pages[0]]), results.pages_that_failed) 41 self.assertEqual(set([self.pages[0]]), results.pages_that_failed)
41 self.assertEqual(set([self.pages[1]]), results.pages_that_succeeded) 42 self.assertEqual(set([self.pages[1]]), results.pages_that_succeeded)
42 43
43 self.assertEqual(2, len(results.all_page_runs)) 44 self.assertEqual(2, len(results.all_page_runs))
44 self.assertTrue(results.all_page_runs[0].failed) 45 self.assertTrue(results.all_page_runs[0].failed)
45 self.assertTrue(results.all_page_runs[1].ok) 46 self.assertTrue(results.all_page_runs[1].ok)
46 47
47
48 def testSkips(self): 48 def testSkips(self):
49 results = page_test_results.PageTestResults() 49 results = page_test_results.PageTestResults()
50 results.WillRunPage(self.pages[0]) 50 results.WillRunPage(self.pages[0])
51 results.AddValue(skip.SkipValue(self.pages[0], 'testing reason')) 51 results.AddValue(skip.SkipValue(self.pages[0], 'testing reason'))
52 results.DidRunPage(self.pages[0]) 52 results.DidRunPage(self.pages[0])
53 53
54 results.WillRunPage(self.pages[1]) 54 results.WillRunPage(self.pages[1])
55 results.DidRunPage(self.pages[1]) 55 results.DidRunPage(self.pages[1])
56 56
57 self.assertTrue(results.all_page_runs[0].skipped) 57 self.assertTrue(results.all_page_runs[0].skipped)
(...skipping 19 matching lines...) Expand all
77 77
78 values = results.FindPageSpecificValuesForPage(self.pages[0], 'a') 78 values = results.FindPageSpecificValuesForPage(self.pages[0], 'a')
79 self.assertEquals(1, len(values)) 79 self.assertEquals(1, len(values))
80 v = values[0] 80 v = values[0]
81 self.assertEquals(v.name, 'a') 81 self.assertEquals(v.name, 'a')
82 self.assertEquals(v.page, self.pages[0]) 82 self.assertEquals(v.page, self.pages[0])
83 83
84 values = results.FindAllPageSpecificValuesNamed('a') 84 values = results.FindAllPageSpecificValuesNamed('a')
85 assert len(values) == 2 85 assert len(values) == 2
86 86
87 def testResultsFiltering(self):
88 def AcceptValueNamed_a(value):
89 return value.name == 'a'
90 results = page_test_results.PageTestResults(
91 value_can_be_added_predicate=AcceptValueNamed_a)
92 results.WillRunPage(self.pages[0])
93 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3))
94 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 3))
95 results.DidRunPage(self.pages[0])
96
97 results.WillRunPage(self.pages[1])
98 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 3))
99 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 3))
100 results.DidRunPage(self.pages[1])
101
102 results.PrintSummary()
103
104 values = results.FindPageSpecificValuesForPage(self.pages[0], 'a')
105 self.assertEquals(1, len(values))
106 v = values[0]
107 self.assertEquals(v.name, 'a')
108 self.assertEquals(v.page, self.pages[0])
109
110 values = results.FindPageSpecificValuesForPage(self.pages[0], 'b')
111 self.assertEquals(0, len(values))
112
113 values = results.FindAllPageSpecificValuesNamed('a')
114 self.assertEquals(len(values), 2)
115
116 values = results.all_page_specific_values
117 self.assertEquals(len(values), 2)
118
119 def testUrlIsInvalidValue(self): 87 def testUrlIsInvalidValue(self):
120 results = page_test_results.PageTestResults() 88 results = page_test_results.PageTestResults()
121 results.WillRunPage(self.pages[0]) 89 results.WillRunPage(self.pages[0])
122 self.assertRaises( 90 self.assertRaises(
123 AssertionError, 91 AssertionError,
124 lambda: results.AddValue(scalar.ScalarValue( 92 lambda: results.AddValue(scalar.ScalarValue(
125 self.pages[0], 'url', 'string', 'foo'))) 93 self.pages[0], 'url', 'string', 'foo')))
126 94
127 def testAddSummaryValueWithPageSpecified(self): 95 def testAddSummaryValueWithPageSpecified(self):
128 results = page_test_results.PageTestResults() 96 results = page_test_results.PageTestResults()
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 results.WillRunPage(self.pages[0]) 227 results.WillRunPage(self.pages[0])
260 results.AddValue(v0) 228 results.AddValue(v0)
261 results.DidRunPage(self.pages[0]) 229 results.DidRunPage(self.pages[0])
262 230
263 results.WillRunPage(self.pages[1]) 231 results.WillRunPage(self.pages[1])
264 results.AddValue(v1) 232 results.AddValue(v1)
265 results.DidRunPage(self.pages[1]) 233 results.DidRunPage(self.pages[1])
266 234
267 results.CleanUp() 235 results.CleanUp()
268 self.assertFalse(results.FindAllTraceValues()) 236 self.assertFalse(results.FindAllTraceValues())
237
238
239 class PageTestResultsFilterTest(unittest.TestCase):
240 def setUp(self):
241 ps = page_set.PageSet(file_path=os.path.dirname(__file__))
242 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir))
243 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir))
244 self.page_set = ps
245
246 @property
247 def pages(self):
248 return self.page_set.pages
249
250 def testFilterValue(self):
251 def AcceptValueNamed_a(value, _):
252 return value.name == 'a'
253 results = page_test_results.PageTestResults(
254 value_can_be_added_predicate=AcceptValueNamed_a)
255 results.WillRunPage(self.pages[0])
256 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3))
257 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 3))
258 results.DidRunPage(self.pages[0])
259
260 results.WillRunPage(self.pages[1])
261 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 3))
262 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 3))
263 results.DidRunPage(self.pages[1])
264 results.PrintSummary()
265 self.assertEquals(
266 [('a', 'http://www.foo.com/'), ('a', 'http://www.bar.com/')],
267 [(v.name, v.page.url) for v in results.all_page_specific_values])
268
269 def testFilterIsFirstResult(self):
270 def AcceptSecondValues(_, is_first_result):
271 return not is_first_result
272 results = page_test_results.PageTestResults(
273 value_can_be_added_predicate=AcceptSecondValues)
274
275 # First results (filtered out)
276 results.WillRunPage(self.pages[0])
277 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 7))
278 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 8))
279 results.DidRunPage(self.pages[0])
280 results.WillRunPage(self.pages[1])
281 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 5))
282 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 6))
283 results.DidRunPage(self.pages[1])
284
285 # Second results
286 results.WillRunPage(self.pages[0])
287 results.AddValue(scalar.ScalarValue(self.pages[0], 'a', 'seconds', 3))
288 results.AddValue(scalar.ScalarValue(self.pages[0], 'b', 'seconds', 4))
289 results.DidRunPage(self.pages[0])
290 results.WillRunPage(self.pages[1])
291 results.AddValue(scalar.ScalarValue(self.pages[1], 'a', 'seconds', 1))
292 results.AddValue(scalar.ScalarValue(self.pages[1], 'd', 'seconds', 2))
293 results.DidRunPage(self.pages[1])
294 results.PrintSummary()
295 expected_values = [
296 ('a', 'http://www.foo.com/', 3),
297 ('b', 'http://www.foo.com/', 4),
298 ('a', 'http://www.bar.com/', 1),
299 ('d', 'http://www.bar.com/', 2)]
300 actual_values = [(v.name, v.page.url, v.value)
301 for v in results.all_page_specific_values]
302 self.assertEquals(expected_values, actual_values)
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/results/page_test_results.py ('k') | tools/telemetry/telemetry/results/results_options.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698