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

Unified Diff: build/android/pylib/utils/json_results_generator_unittest.py

Issue 1315743004: [Android] Add a custom pylintrc for build/android/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix appurify_sanitized import-errors Created 5 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 | « build/android/pylib/utils/findbugs.py ('k') | build/android/pylib/utils/test_environment.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/utils/json_results_generator_unittest.py
diff --git a/build/android/pylib/utils/json_results_generator_unittest.py b/build/android/pylib/utils/json_results_generator_unittest.py
deleted file mode 100644
index 41ab77b81f7d43fbb97378c3a8d43ec4cbe9a254..0000000000000000000000000000000000000000
--- a/build/android/pylib/utils/json_results_generator_unittest.py
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-#
-# Most of this file was ported over from Blink's
-# webkitpy/layout_tests/layout_package/json_results_generator_unittest.py
-#
-
-import unittest
-import json
-
-from pylib.utils import json_results_generator
-
-
-class JSONGeneratorTest(unittest.TestCase):
-
- def setUp(self):
- self.builder_name = 'DUMMY_BUILDER_NAME'
- self.build_name = 'DUMMY_BUILD_NAME'
- self.build_number = 'DUMMY_BUILDER_NUMBER'
-
- # For archived results.
- self._json = None
- self._num_runs = 0
- self._tests_set = set([])
- self._test_timings = {}
- self._failed_count_map = {}
-
- self._PASS_count = 0
- self._DISABLED_count = 0
- self._FLAKY_count = 0
- self._FAILS_count = 0
- self._fixable_count = 0
-
- self._orig_write_json = json_results_generator.WriteJSON
-
- # unused arguments ... pylint: disable=W0613
- def _WriteJSONStub(json_object, file_path, callback=None):
- pass
-
- json_results_generator.WriteJSON = _WriteJSONStub
-
- def tearDown(self):
- json_results_generator.WriteJSON = self._orig_write_json
-
- def _TestJSONGeneration(self, passed_tests_list, failed_tests_list):
- tests_set = set(passed_tests_list) | set(failed_tests_list)
-
- DISABLED_tests = set([t for t in tests_set
- if t.startswith('DISABLED_')])
- FLAKY_tests = set([t for t in tests_set
- if t.startswith('FLAKY_')])
- FAILS_tests = set([t for t in tests_set
- if t.startswith('FAILS_')])
- PASS_tests = tests_set - (DISABLED_tests | FLAKY_tests | FAILS_tests)
-
- failed_tests = set(failed_tests_list) - DISABLED_tests
- failed_count_map = dict([(t, 1) for t in failed_tests])
-
- test_timings = {}
- i = 0
- for test in tests_set:
- test_timings[test] = float(self._num_runs * 100 + i)
- i += 1
-
- test_results_map = dict()
- for test in tests_set:
- test_results_map[test] = json_results_generator.TestResult(
- test, failed=(test in failed_tests),
- elapsed_time=test_timings[test])
-
- generator = json_results_generator.JSONResultsGeneratorBase(
- self.builder_name, self.build_name, self.build_number,
- '',
- None, # don't fetch past json results archive
- test_results_map)
-
- failed_count_map = dict([(t, 1) for t in failed_tests])
-
- # Test incremental json results
- incremental_json = generator.GetJSON()
- self._VerifyJSONResults(
- tests_set,
- test_timings,
- failed_count_map,
- len(PASS_tests),
- len(DISABLED_tests),
- len(FLAKY_tests),
- len(DISABLED_tests | failed_tests),
- incremental_json,
- 1)
-
- # We don't verify the results here, but at least we make sure the code
- # runs without errors.
- generator.GenerateJSONOutput()
- generator.GenerateTimesMSFile()
-
- def _VerifyJSONResults(self, tests_set, test_timings, failed_count_map,
- PASS_count, DISABLED_count, FLAKY_count,
- fixable_count, json_obj, num_runs):
- # Aliasing to a short name for better access to its constants.
- JRG = json_results_generator.JSONResultsGeneratorBase
-
- self.assertIn(JRG.VERSION_KEY, json_obj)
- self.assertIn(self.builder_name, json_obj)
-
- buildinfo = json_obj[self.builder_name]
- self.assertIn(JRG.FIXABLE, buildinfo)
- self.assertIn(JRG.TESTS, buildinfo)
- self.assertEqual(len(buildinfo[JRG.BUILD_NUMBERS]), num_runs)
- self.assertEqual(buildinfo[JRG.BUILD_NUMBERS][0], self.build_number)
-
- if tests_set or DISABLED_count:
- fixable = {}
- for fixable_items in buildinfo[JRG.FIXABLE]:
- for (result_type, count) in fixable_items.iteritems():
- if result_type in fixable:
- fixable[result_type] = fixable[result_type] + count
- else:
- fixable[result_type] = count
-
- if PASS_count:
- self.assertEqual(fixable[JRG.PASS_RESULT], PASS_count)
- else:
- self.assertTrue(JRG.PASS_RESULT not in fixable or
- fixable[JRG.PASS_RESULT] == 0)
- if DISABLED_count:
- self.assertEqual(fixable[JRG.SKIP_RESULT], DISABLED_count)
- else:
- self.assertTrue(JRG.SKIP_RESULT not in fixable or
- fixable[JRG.SKIP_RESULT] == 0)
- if FLAKY_count:
- self.assertEqual(fixable[JRG.FLAKY_RESULT], FLAKY_count)
- else:
- self.assertTrue(JRG.FLAKY_RESULT not in fixable or
- fixable[JRG.FLAKY_RESULT] == 0)
-
- if failed_count_map:
- tests = buildinfo[JRG.TESTS]
- for test_name in failed_count_map.iterkeys():
- test = self._FindTestInTrie(test_name, tests)
-
- failed = 0
- for result in test[JRG.RESULTS]:
- if result[1] == JRG.FAIL_RESULT:
- failed += result[0]
- self.assertEqual(failed_count_map[test_name], failed)
-
- timing_count = 0
- for timings in test[JRG.TIMES]:
- if timings[1] == test_timings[test_name]:
- timing_count = timings[0]
- self.assertEqual(1, timing_count)
-
- if fixable_count:
- self.assertEqual(sum(buildinfo[JRG.FIXABLE_COUNT]), fixable_count)
-
- def _FindTestInTrie(self, path, trie):
- nodes = path.split('/')
- sub_trie = trie
- for node in nodes:
- self.assertIn(node, sub_trie)
- sub_trie = sub_trie[node]
- return sub_trie
-
- def testJSONGeneration(self):
- self._TestJSONGeneration([], [])
- self._TestJSONGeneration(['A1', 'B1'], [])
- self._TestJSONGeneration([], ['FAILS_A2', 'FAILS_B2'])
- self._TestJSONGeneration(['DISABLED_A3', 'DISABLED_B3'], [])
- self._TestJSONGeneration(['A4'], ['B4', 'FAILS_C4'])
- self._TestJSONGeneration(['DISABLED_C5', 'DISABLED_D5'], ['A5', 'B5'])
- self._TestJSONGeneration(
- ['A6', 'B6', 'FAILS_C6', 'DISABLED_E6', 'DISABLED_F6'],
- ['FAILS_D6'])
-
- # Generate JSON with the same test sets. (Both incremental results and
- # archived results must be updated appropriately.)
- self._TestJSONGeneration(
- ['A', 'FLAKY_B', 'DISABLED_C'],
- ['FAILS_D', 'FLAKY_E'])
- self._TestJSONGeneration(
- ['A', 'DISABLED_C', 'FLAKY_E'],
- ['FLAKY_B', 'FAILS_D'])
- self._TestJSONGeneration(
- ['FLAKY_B', 'DISABLED_C', 'FAILS_D'],
- ['A', 'FLAKY_E'])
-
- def testHierarchicalJSNGeneration(self):
- # FIXME: Re-work tests to be more comprehensible and comprehensive.
- self._TestJSONGeneration(['foo/A'], ['foo/B', 'bar/C'])
-
- def testTestTimingsTrie(self):
- individual_test_timings = []
- individual_test_timings.append(
- json_results_generator.TestResult(
- 'foo/bar/baz.html',
- elapsed_time=1.2))
- individual_test_timings.append(
- json_results_generator.TestResult('bar.html', elapsed_time=0.0001))
- trie = json_results_generator.TestTimingsTrie(individual_test_timings)
-
- expected_trie = {
- 'bar.html': 0,
- 'foo': {
- 'bar': {
- 'baz.html': 1200,
- }
- }
- }
-
- self.assertEqual(json.dumps(trie), json.dumps(expected_trie))
« no previous file with comments | « build/android/pylib/utils/findbugs.py ('k') | build/android/pylib/utils/test_environment.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698