13eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org#!/usr/bin/python
23eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
33eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org"""
43eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgCopyright 2014 Google Inc.
53eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
63eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgUse of this source code is governed by a BSD-style license that can be
73eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgfound in the LICENSE file.
83eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
93eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgTest results.py
103eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
113eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org"""
123eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
133eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org# Imports from within Skia
143eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgimport base_unittest
153eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgimport results
163eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
173eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
183eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgclass ResultsTest(base_unittest.TestCase):
193eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
20defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org  def test_ignore_builder(self):
21defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    """Test _ignore_builder()."""
22defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    results_obj = results.BaseComparisons()
23defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder('SomethingTSAN'), True)
24defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder('Something-Trybot'), True)
25defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder(
26defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org        'Test-Ubuntu12-ShuttleA-GTX660-x86-Release'), False)
27defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    results_obj.set_skip_builders_pattern_list(['.*TSAN.*', '.*GTX660.*'])
28defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder('SomethingTSAN'), True)
29defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder('Something-Trybot'), False)
30defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder(
31defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org        'Test-Ubuntu12-ShuttleA-GTX660-x86-Release'), True)
32defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    results_obj.set_skip_builders_pattern_list(None)
33defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder('SomethingTSAN'), False)
34defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder('Something-Trybot'), False)
35defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder(
36defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org        'Test-Ubuntu12-ShuttleA-GTX660-x86-Release'), False)
37defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    results_obj.set_match_builders_pattern_list(['.*TSAN'])
38defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder('SomethingTSAN'), False)
39defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder('Something-Trybot'), True)
40defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org    self.assertEqual(results_obj._ignore_builder(
41defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org        'Test-Ubuntu12-ShuttleA-GTX660-x86-Release'), True)
42defe6fdbc8edb2df0887c007450a8d8cc446f420commit-bot@chromium.org
433eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org  def test_combine_subdicts_typical(self):
443eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    """Test combine_subdicts() with no merge conflicts. """
453eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    input_dict = {
463eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      "failed" : {
473eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org        "changed.png" : [ "bitmap-64bitMD5", 8891695120562235492 ],
483eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      },
493eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      "no-comparison" : {
503eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org        "unchanged.png" : [ "bitmap-64bitMD5", 11092453015575919668 ],
513eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      }
523eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    }
533eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    expected_output_dict = {
543eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      "changed.png" : [ "bitmap-64bitMD5", 8891695120562235492 ],
553eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      "unchanged.png" : [ "bitmap-64bitMD5", 11092453015575919668 ],
563eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    }
573eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    actual_output_dict = results.BaseComparisons.combine_subdicts(
583eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org        input_dict=input_dict)
593eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    self.assertEqual(actual_output_dict, expected_output_dict)
603eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
613eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org  def test_combine_subdicts_with_merge_conflict(self):
623eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    """Test combine_subdicts() with a merge conflict. """
633eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    input_dict = {
643eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      "failed" : {
653eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org        "changed.png" : [ "bitmap-64bitMD5", 8891695120562235492 ],
663eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      },
673eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      "no-comparison" : {
683eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org        "changed.png" : [ "bitmap-64bitMD5", 11092453015575919668 ],
693eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      }
703eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    }
713eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org    with self.assertRaises(Exception):
723eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org      actual_output_dict = results.BaseComparisons.combine_subdicts(
733eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org          input_dict=input_dict)
743eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
753eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
763eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgdef main():
773eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org  base_unittest.main(ResultsTest)
783eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
793eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org
803eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.orgif __name__ == '__main__':
813eb77e4d5a381fa55197f6bd03c599e709146069commit-bot@chromium.org  main()
82