compare_to_expectations_test.py revision b463d5668a498b672b80047f09901981afe513ed
13a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#!/usr/bin/python 23a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 33a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org""" 43a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgCopyright 2013 Google Inc. 53a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 63a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgUse of this source code is governed by a BSD-style license that can be 73a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgfound in the LICENSE file. 83a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 93a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgTest compare_to_expectations.py 103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgTODO(epoger): Create a command to update the expected results (in 123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgself._output_dir_expected) when appropriate. For now, you should: 133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1. examine the results in self._output_dir_actual and make sure they are ok 143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2. rm -rf self._output_dir_expected 153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3. mv self._output_dir_actual self._output_dir_expected 163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgAlthough, if you're using an SVN checkout, this will blow away .svn directories 173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgwithin self._output_dir_expected, which wouldn't be good... 183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org""" 203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgimport os 223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgimport sys 233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org# Imports from within Skia 253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgimport base_unittest 263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgimport compare_to_expectations 273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgimport results 283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgimport gm_json # must import results first, so that gm_json will be in sys.path 293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgclass CompareToExpectationsTest(base_unittest.TestCase): 323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org def test_gm(self): 343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org """Process results of a GM run with the Results object.""" 353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org results_obj = compare_to_expectations.Results( 363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org actuals_root=os.path.join(self._input_dir, 'gm-actuals'), 373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org expected_root=os.path.join(self._input_dir, 'gm-expectations'), 383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org generated_images_root=self._temp_dir, 393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org diff_base_url='/static/generated-images') 403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org results_obj.get_timestamp = mock_get_timestamp 413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org gm_json.WriteToFile( 423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org results_obj.get_packaged_results_of_type( 43 results.KEY__HEADER__RESULTS_ALL), 44 os.path.join(self._output_dir_actual, 'gm.json')) 45 46 47def mock_get_timestamp(): 48 """Mock version of Results.get_timestamp() for testing.""" 49 return 12345678 50 51 52def main(): 53 base_unittest.main(CompareToExpectationsTest) 54 55 56if __name__ == '__main__': 57 main() 58