1#!/usr/bin/python
2
3"""
4Copyright 2014 Google Inc.
5
6Use of this source code is governed by a BSD-style license that can be
7found in the LICENSE file.
8
9Test compare_configs.py
10
11TODO(epoger): Create a command to update the expected results (in
12self._output_dir_expected) when appropriate.  For now, you should:
131. examine the results in self.output_dir_actual and make sure they are ok
142. rm -rf self._output_dir_expected
153. mv self.output_dir_actual self._output_dir_expected
16Although, if you're using an SVN checkout, this will blow away .svn directories
17within self._output_dir_expected, which wouldn't be good...
18
19"""
20
21# System-level imports
22import os
23
24# Must fix up PYTHONPATH before importing from within Skia
25import rs_fixpypath  # pylint: disable=W0611
26
27# Imports from within Skia
28import base_unittest
29import compare_configs
30import gm_json
31import results
32
33
34class CompareConfigsTest(base_unittest.TestCase):
35
36  def test_gm(self):
37    """Process results of a GM run with the ConfigComparisons object."""
38    results_obj = compare_configs.ConfigComparisons(
39        configs=('8888', 'gpu'),
40        actuals_root=os.path.join(self.input_dir, 'gm-actuals'),
41        generated_images_root=self.temp_dir,
42        diff_base_url='/static/generated-images')
43    results_obj.get_timestamp = mock_get_timestamp
44    gm_json.WriteToFile(
45        results_obj.get_packaged_results_of_type(
46            results.KEY__HEADER__RESULTS_ALL),
47        os.path.join(self.output_dir_actual, 'gm.json'))
48
49
50def mock_get_timestamp():
51  """Mock version of BaseComparisons.get_timestamp() for testing."""
52  return 12345678
53
54
55def main():
56  base_unittest.main(CompareConfigsTest)
57
58
59if __name__ == '__main__':
60  main()
61